1. 认识Deployment
在 k8s 中,Pod 是最小的控制单元,但是 k8s 很少直接控制 Pod,一般都是通过 Pod 控制器来完成的。Pod 控制器用于 pod 的管理,确保 pod 资源符合预期的状态,当 pod 的资源出现故障时,会尝试进行重启或重建 pod。我这里只学习一种 pod 控制器:Deployment。
2. 常用命令
# 命令格式: kubectl create deployment 名称 [参数]# --image 指定pod的镜像# --port 指定端口# --replicas 指定创建pod数量# --namespace 指定namespace[root@k8s-master01 kubeadm_yaml]# kubectl create deploy nginx --image=nginx:latest --port=80 --replicas=3 -n devdeployment.apps/nginx created# 查看创建的pod[root@k8s-master01 kubeadm_yaml]# kubectl get pods -n devNAME READY STATUS RESTARTS AGEnginx-8d545c96d-62qzz 1/1 Running 0 61snginx-8d545c96d-nv9mh 1/1 Running 0 61snginx-8d545c96d-qkr4s 1/1 Running 0 61s# 查看deployment的信息[root@k8s-master01 kubeadm_yaml]# kubectl get deploy -n devNAME READY UP-TO-DATE AVAILABLE AGEnginx 3/3 3 3 102s# 查看deployment的详细信息kubectl describe deploy nginx -n dev# UP-TO-DATE:成功升级的副本数量# AVAILABLE:可用副本的数量[root@k8s-master01 kubeadm_yaml]# kubectl get deploy -n dev -o wideNAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTORnginx 3/3 3 3 2m5s nginx nginx:latest app=nginx# 删除deployment[root@k8s-master01 kubeadm_yaml]# kubectl delete deploy nginx -n devdeployment.apps "nginx" deleted
配置操作
apiVersion: apps/v1kind: Deploymentmetadata:name: nginxnamespace: devspec:replicas: 3selector:matchLabels:run: nginxtemplate:metadata:labels:run: nginxspec:containers:- image: nginx:latestname: nginxports:- containerPort: 80protocol: TCP
