赞
踩
目录
- kubectl create -f xxx.yaml
- kubectl apply -f xxx.yaml
- #区别:使用create创建资源是一次性的,如果使用apply创建,后期修改yaml文件再次执行apply可以实现更新资源
kubectl delete -f xxx.yaml
kubectl get 资源名称 -o yaml
kubectl explain yaml文件中的字段(多级字段用 . 隔开)
kubectl api-versions
- 修改yaml文件,并用 kubectl apply -f xxxx.yaml 文件使之生效
- 注意:当apply不生效时,先使用delete清除资源,再apply创建资源
- 例:
- kubectl get service nginx -o yaml > nginx-svc.yaml
- vim nginx-svc.yaml #修改port: 8080
- kubectl delete -f nginx-svc.yaml
- kubectl apply -f nginx-svc.yaml
- kubectl get svc
- 直接使用 kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效(如port: 888)
- PS:此修改方式不会对yaml文件内容修改
- mkdir /opt/demo
- cd demo/
-
- vim nginx-deployment.yaml
- apiVersion: apps/v1 #指定api版本标签
- kind: Deployment #定义资源的类型/角色,deployment为副本控制器,此处资源类型可以是Deployment、Job、Ingress、Service等
- metadata: #定义资源的元数据信息,比如资源的名称、namespace、标签等信息
- name: nginx-deployment #定义资源的名称,在同一个namespace空间中必须是唯一的
- labels: #定义Deployment资源标签
- app: nginx
- spec: #定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性
- replicas: 3 #定义副本数量
- selector: #定义标签选择器
- matchLabels: #定义匹配标签
- app: nginx #需与 .spec.template.metadata.labels 定义的标签保持一致
- template: #定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配
- metadata:
- labels: #定义Pod副本将使用的标签,需与 .spec.selector.matchLabels 定义的标签保持一致
- app: nginx
- spec:
- containers: #定义容器属性
- - name: nginx #定义一个容器名,一个 - name: 定义一个容器
- image: nginx:1.15.4 #定义容器使用的镜像以及版本
- ports:
- - containerPort: 80 #定义容器的对外的端口
kubectl create -f nginx-deployment.yaml
kubectl get pods -o wide
- vim nginx-service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: nginx-service
- labels:
- app: nginx
- spec:
- type: NodePort
- ports:
- - port: 8080
- targetPort: 80
- nodePort: 30007
- clusterIP: 10.96.171.239
- selector:
- app: nginx
- //创建资源对象
- kubectl create -f nginx-service.yaml
-
- //查看创建的service
- kubectl get svc
- http://192.168.88.31:30512
- http://192.168.88.13:30512
kubectl run --dry-run=client 打印相应的 API 对象而不执行创建
- kubectl run nginx-test --image=nginx --port=80 --dry-run=client
- kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client
- kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o yaml
- kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml
- kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o json
- kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client -o json
使用yaml格式导出生成模板,并进行修改以及删除一些不必要的参数
- kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o yaml > nginx-test.yaml
- kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml > nginx-deploy.yaml
-
- vim nginx-test.yaml
- apiVersion: v1
- kind: Pod
- metadata:
- creationTimestamp: null #删除
- labels:
- run: nginx-test
- name: nginx-test
- spec:
- containers:
- - image: nginx
- name: nginx-test
- ports:
- - containerPort: 80
- resources: {} #删除
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- status: {} #删除
- //将现有的资源生成模板导出
- kubectl get svc nginx-service -o yaml
-
- //保存到文件中
- kubectl get svc nginx-service -o yaml > my-svc.yaml
-
- //查看字段帮助信息,可一层层的查看相关资源对象的帮助信息
- kubectl explain deployments.spec.template.spec.containers
- 或
- kubectl explain pods.spec.containers
- kubectl get -n <命名空间> <资源类型> <资源名称> -o yaml > XXX.yaml #获取资源配置清单
-
- kubectl apply|create -f XXX.yaml #创建|更新资源
- kubectl delete -f XXX.yaml #删除资源
-
- kubectl edit -n <命名空间> <资源类型> <资源名称> #在线修改资源配置
-
- 对于不支持在线修改的字段只能通过离线修改的方式更新资源: kubectl delete -f XXX.yaml && kubectl apply -f XXX.yaml
-
- kubectl explain <资源类型>.<一级字段>.<二级字段>.... #获取资源配置字段的解释
-
-
- K8S资源配置清单文件字段的值类型
- 字段: <integer> 数字 字段: 数值
- 字段: <string> 字符串 字段: "字符串" 字段: '字符串' 字段: 字符串
- 字段: <boolean> 布尔值 字段: true|false
-
- 字段: <Object> 对象:值可能是一层或多层子字段
- 字段:
- 二级字段:
- 三级字段
-
- 字段: <[]Object> 列表类型的对象 字段:
- - 二级字段:
- 三级字段
- - 二级字段:
- 字段: <map[string]string> 映射:值可能是一个或多个键值对类型的值
- 字段:
- key1: value1
- key2: value2
- key3: value3
1)手写yaml配置文件,可以根据 kubectl explain 命令获取字段信息
2)查看现有的资源配置获取:kubectl get -n <命名空间> <资源类型> <资源名称> -o yaml > XXX.yaml
kubectl edit -n <命名空间> <资源类型> <资源名称> ,然后手动复制资源配置,粘贴到yaml文件中
3)无中生有(模拟运行kubectl陈述式创建资源的命令获取):
kubectl create|run|expose 选项 --dry-run=client -o yaml > XXX.yaml
4)复制K8S官网文档的资源配置案例
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。