在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。
在kubernetes中Pod控制器的种类有很多,这里只介绍一种:Deployment。
命令操作
kubectl默认底层有个deployment控制器
创建pod
# 命令格式: kubectl create deployment 名称 [参数]
# --image 指定pod的镜像
# --port 指定端口
# --replicas 指定创建pod数量,默认一个
# --namespace 指定namespace
kubectl run nginx --image=nginx:1.17.1 --port=80 --replicas=3 -n dev
查看创建的Pod
# 查看创建的Pod
kubectl get pods -n dev
查看deployment的信息
# 查看deployment的信息
kubectl get deployment -n dev
# UP-TO-DATE:成功升级的副本数量
# AVAILABLE:可用副本的数量
kubectl get deployment -n dev -o wide
查看deployment的详细信息
# 查看deployment的详细信息
kubectl describe deployment nginx -n dev
删除
# 删除 deployment/deploy 是一样的
kubectl delete deploy nginx -n dev
配置操作
创建一个deploy-nginx.yaml
vi deploy-nginx.yaml
内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: dev
spec:
# 副本数
replicas: 3
selector:
# 选择器匹配
matchLabels:
run: nginx
template:
# pod 模板
metadata:
labels:
# 标签
run: nginx
spec:
containers:
- image: nginx:1.17.1
name: nginx
ports:
- containerPort: 80
protocol: TCP
然后就可以执行对应的创建和删除命令了:
创建
kubectl create -f deploy-nginx.yaml
删除
kubectl delete -f deploy-nginx.yaml