Deployment
在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。
在kubernetes中Pod控制器的种类有很多,这里只介绍一种:Deployment。
命令操作
# 命令格式: kubectl create deployment 名称 [参数] # --image 指定pod的镜像 # --port 指定端口 # --replicas 指定创建pod数量 # --namespace 指定namespace [root@master ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3 -n dev 注:在1.18版及以后,使用kubectl run时不能创建多副本 Flag --replicas has been deprecated, has no effect and will be removed in the future.
正确的创建方式
kubectl create deployment xxx [-n 命名空间] 或 kubectl create deploy xxx [-n 命名空间] kubectl scale deployment xxx [--replicas=正整数] [-n 命名空间] 注:要先创建一个deployment,才能创建多副本(多pod)
在命名空间dev下创建名为nginx1的deployment,此时会产生一个由deployment控制的pod [root@master ~]# kubectl create deployment nginx1 --image=nginx:latest -n dev [root@master ~]# kubectl get pods -n dev 在命名空间dev下根据名为nginx1的deployment扩展为3个Pod [root@master ~]# kubectl scale deployment nginx1 --replicas=3 -n dev [root@master ~]# kubectl get pods -n dev 查看deployment的信息 [root@master ~]# kubectl get deploy -n dev # UP-TO-DATE:成功升级的副本数量 # AVAILABLE:可用副本的数量 [root@master ~]# kubectl get deploy -n dev -o wide
# 查看deployment的详细信息
[root@master ~]# kubectl describe deploy nginx1 -n dev [root@master ~]# kubectl get pods --show-labels -n dev# 删除
[root@master ~]# kubectl delete deploy nginx1 -n dev
yaml配置操作
创建一个deploy-nginx.yaml,内容如下:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: dev spec: replicas: 3 selector: matchLabels: run: nginx template: metadata: labels: run: nginx spec: containers: - image: nginx:latest name: nginx ports: - containerPort: 80 protocol: TCP然后就可以执行对应的创建和删除命令了:
创建
[root@master ~]# kubectl create -f deploy-nginx.yaml
查看
[root@master ~]# kubectl get pod -n dev
删除
[root@master ~]# kubectl delete -f deploy-nginx.yaml
参考
黑马B站k8s课程https://www.bilibili.com/video/BV1Qv41167ck/ https://gitee.com/yooome/golang/blob/main/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B-%E8%B0%83%E6%95%B4%E7%89%88/k8s%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B.md https://www.yuque.com/fairy-era/yg511q/xyqxge标签:kubectl,入门,--,dev,nginx,master,Deployment,k8s,root From: https://www.cnblogs.com/gys001/p/16873380.html