pod控制器-Deployment的使用

在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。

在kubernetes中Pod控制器的种类有很多,这里只介绍一种:Deployment。

image-20220516164056864

命令操作

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

image-20220516164734767

查看创建的Pod

# 查看创建的Pod
kubectl get pods -n dev

image-20220516165302220

查看deployment的信息

# 查看deployment的信息
kubectl get deployment -n dev

# UP-TO-DATE:成功升级的副本数量
# AVAILABLE:可用副本的数量
kubectl get deployment -n dev -o wide

image-20220516164901277

查看deployment的详细信息

# 查看deployment的详细信息
kubectl describe deployment nginx -n dev

image-20220516165422749

删除

# 删除 deployment/deploy 是一样的
kubectl delete deploy nginx -n dev

image-20220516165552173

配置操作

创建一个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
posted @ 2022-05-16 17:13  makalo  阅读(151)  评论(0编辑  收藏  举报