linux怎么查看本机内存大小
291
2022-09-11
k8s入门-资源文件实现k8s入门-资源文件实现
1.1 idea安装k8s插件
1、idea插件官网地址:Plugin from Disk->插件安装目录,安装完成后重启idea
1.2 idea配置SSH客户端
1、idea配置
settings->Tools->SSH Configurations->新建
2、选择使用SSH客户端。
Tools->Start SSH session->选择刚刚配置的ssh客户端名称
3、新建yml类型文件
idea默认没有yml文件类型,可以通过new->file->手工输入*.yml创建yml类型文件。
1.3 Remote Host
1、IDEA基本配置
Tools->Deployment->Configurations->配置Remote Host
2、设置服务器名字: k8s-master01
3、测试连接!!!
4、使用Remote Host,将本工程中的文件上传k8s集群 。
1.4 NameSpace相关操作
1、查看自动生成模板信息内容
2、创建namespace01.yml文件
在文件中输入kres,根据模板快速生成yml文件信息。
apiVersion: v1kind: Namespacemetadata: name: guardwhy
3、通过idea的Remote Host快速将yml文件上传k8s集群进行测试
[root@k8s-master01 data]# lscalico.yml init.sh k8s.1.17.5.tar pod[root@k8s-master01 data]# cd pod/[root@k8s-master01 pod]# lsnamespace01.yml# 1、创建namespace(guardwhy)[root@k8s-master01 pod]# kubectl apply -f namespace01.yml namespace/guardwhy created[root@k8s-master01 pod]# kubectl get nsNAME STATUS AGEdefault Active 2d3hguardwhy Active 11skube-node-lease Active 2d3hkube-public Active 2d3hkube-system Active 2d3h# 2、删除namespace(guardwhy)[root@k8s-master01 pod]# kubectl delete -f namespace01.yml namespace "guardwhy" deleted[root@k8s-master01 pod]# kubectl get nsNAME STATUS AGEdefault Active 2d3hkube-node-lease Active 2d3hkube-public Active 2d3hkube-system Active 2d3h[root@k8s-master01 pod]#
1.5 pod相关操作
1、在k8sdemo01工程创建tomcatpod.yml文件,在文件中输入kpod,根据模板快速生成yml文件信息。
apiVersion: v1kind: Podmetadata: name: tomcat-pod labels: app: tomcat-podspec: containers: - name: tomcat-pod image: tomcat:9.0.20-jre8-alpine imagePullPolicy: IfNotPresent restartPolicy: Always
2、镜像下载策略、重启策略
imagePullPolicy:
Always:总是拉取 pull。IfNotPresent:如果本地有镜像,使用本地,如果本地没有镜像,下载镜像。Never:只使用本地镜像,从不拉取。
restartPolicy:
Always:只要退出就重启。OnFailure:失败退出时(exit code不为0)才重启。Never:永远不重启。
3、运行pod
## 1、查看deployment控制器[root@k8s-master01 pod]# kubectl get deploymentNo resources found in default namespace.## 2.查看所有的pod[root@k8s-master01 pod]# kubectl get podNo resources found in default namespace.## 3.查看镜像[root@k8s-master01 pod]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEtomcat 9.0.37-jdk8-openjdk-slim d60b68827676 9 months ago 305MBtomcat 9.0.37-jdk8 9c7be7b021c3 9 months ago 531MBcalico/node v3.14.2 780a7bc34ed2 11 months ago 262MBcalico/pod2daemon-flexvol v3.14.2 9dfa8f25b51c 11 months ago 22.8MBcalico/cni v3.14.2 e6189009f081 11 months ago 119MBcalico/kube-controllers v3.14.2 4815e4106d26 11 months ago 52.8MBk8s.gcr.io/kube-proxy v1.17.5 e13db435247d 14 months ago 116MBk8s.gcr.io/kube-controller-manager v1.17.5 fe3d691efbf3 14 months ago 161MBk8s.gcr.io/kube-apiserver v1.17.5 f640481f6db3 14 months ago 171MBk8s.gcr.io/kube-scheduler v1.17.5 f648efaff966 14 months ago 94.4MBk8s.gcr.io/coredns 1.6.5 70f311871ae1 20 months ago 41.6MBk8s.gcr.io/etcd 3.4.3-0 303ce5db0e90 20 months ago 288MBtomcat 9.0.20-jre8-alpine 387f9d021d3a 2 years ago 108MBk8s.gcr.io/pause 3.1 da86e6ba6ca1 3 years ago 742kB[root@k8s-master01 pod]# lsnamespace01.yml tomcatpod.yml## 4.资源文件运行pod[root@k8s-master01 pod]# kubectl apply -f tomcatpod.yml pod/tomcat-pod created[root@k8s-master01 pod]# kubectl get podNAME READY STATUS RESTARTS AGEtomcat-pod 1/1 Running 0 21s## 5.查看pod的详细信息[root@k8s-master01 pod]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEStomcat-pod 1/1 Running 0 80s 10.81.85.212 k8s-node01
3、测试pod
curl 10.81.85.212:8080
4、删除pod
[root@k8s-master01 pod]# kubectl get podsNAME READY STATUS RESTARTS AGEtomcat-pod 1/1 Running 0 15m[root@k8s-master01 pod]# kubectl delete -f tomcatpod.yml pod "tomcat-pod" deleted[root@k8s-master01 pod]# kubectl get podsNo resources found in default namespace.[root@k8s-master01 pod]#
注意:不会创建默认的资源管理器!!!
[root@k8s-master01 pod]# kubectl get deploymentNo resources found in default namespace.[root@k8s-master01 pod]#
1.5 deployment相关操作
1、在k8sdemo01工程创建tomcatdeployment.yml文件,在文件中输入kdep,根据模板快速生成yml文件信息。
apiVersion: apps/v1kind: Deploymentmetadata: name: tomcat-deploy labels: app: tomcat-deployspec: replicas: 3 template: metadata: name: tomcat-deploy labels: app: tomcat-pod spec: containers: - name: tomcat-deploy image: tomcat:9.0.20-jre8-alpine imagePullPolicy: IfNotPresent restartPolicy: Always selector: matchLabels: app: tomcat-pod
2、matchLabels
在Deployment中必须写matchLables。在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和template.labels对应。
3、运行deployment
[root@k8s-master01 pod]# lsnamespace01.yml tomcatdeployment.yml tomcatpod.yml## 1.获取deployment控制器[root@k8s-master01 pod]# kubectl get deploymentNo resources found in default namespace.## 2、运行deployment控制器[root@k8s-master01 pod]# kubectl apply -f tomcatdeployment.yml deployment.apps/tomcat-deploy created[root@k8s-master01 pod]# kubectl get deploymentNAME READY UP-TO-DATE AVAILABLE AGEtomcat-deploy 3/3 3 3 31s[root@k8s-master01 pod]#
4、Deployment控制器
Deployment控制器基本介绍:
具有上线部署、滚动升级、创建副本、回滚到以前某一版本(成功/ 稳定)等功能,Deployment包含ReplicaSet,除非需要自定义升级功能或者根本不需要升级Pod,否则还是建议使用Deployment而不直接使用ReplicaSet 。
5、删除Deployment
[root@k8s-master01 pod]# kubectl get deploymentNAME READY UP-TO-DATE AVAILABLE AGEtomcat-deploy 3/3 3 3 19m## 1.删除控制器[root@k8s-master01 pod]# kubectl delete -f tomcatdeployment.yml deployment.apps "tomcat-deploy" deleted[root@k8s-master01 pod]# kubectl get deploymentNo resources found in default namespace.[root@k8s-master01 pod]#
1.6 service相关操作
1、在k8sdemo01工程创建tomcatservice.yml文件,在文件中输入kser,根据模板快速生成yml文件信息。
apiVersion: apps/v1kind: Deploymentmetadata: name: tomcat-deploy labels: app: tomcat-deployspec: replicas: 1 template: metadata: name: tomcat-deploy labels: app: tomcat-pod spec: containers: - name: tomcat-deploy image: tomcat:9.0.20-jre8-alpine imagePullPolicy: IfNotPresent ports: - containerPort: 8088 restartPolicy: Always selector: matchLabels: app: tomcat-pod---apiVersion: v1kind: Servicemetadata: name: tomcat-svcspec: selector: # 标签选择必须是template.labels.app app: tomcat-pod ports: # 对集群内其他服务暴露端口号 - port: 8888 targetPort: 8080 nodePort: 30088 type: NodePort
2、service的selector
service.spec.selector.app选择的内容仍然是template.label.app内容,而不是deployment控制器的label内容。
3、Service类型
ClusterIP:默认,分配一个集群内部可以访问的虚拟IP。NodePort:在每个Node上分配一个端口作为外部访问入口。LoadBalancer:工作在特定的Cloud Provider上,例如Google Cloud,AWS,OpenStack。ExternalName:表示把集群外部的服务引入到集群内部中来,即实现了集群内部pod和集群外部的服务进行通信。
4、Service参数
port:访问service使用的端口。targetPort :Pod中容器端口。NodePort: 通过Node实现外网用户访问k8s集群内service(30000-32767) 。
5、运行service
[root@k8s-master01 pod]# lsnamespace01.yml tomcatdeployment.yml tomcatpod.yml tomcatservice.yml## 1.运行运行service[root@k8s-master01 pod]# kubectl apply -f tomcatservice.yml deployment.apps/tomcat-deploy createdservice/tomcat-svc created## 2.获取service服务[root@k8s-master01 pod]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.1.0.1
测试访问
curl 10.1.156.209:8888
访问集群外端口
http://8.134.125.116:30088
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~