K8s ❉ Deployment

一 介绍

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

        在k8s中Pod的控制器很多,此处只介绍一种:Deployment。

 二 操作

1 命令

因版本原因,可能有些命令参数不能使用,这个理解就好

# 命令格式:kubectl create deployment 名称 [参数]
# --image 指定pod的镜像
# --port  指定pod的端口
# --replicas:指定创建pod的数量
# --namespace 指定namespace
[root@master ~]#kubectl create deploy nginx --image=nginx:latest --port=80 --replicas=3 -n dev
deployment.apps/nginx created


# 查看创建的pod
[root@master ~]#kubectl get pods -n dev
NAME                     READY   STATUS    RESTARTS   AGE
nginx-5ff7956ff6-6k8cb   1/1     Running   0          19s
nginx-5ff7956ff6-jxfjt   1/1     Running   0          19s
nginx-5ff7956ff6-v6jqw   1/1     Running   0          19s


# 查看deployment信息
[root@master ~]#kubectl get deploy -n dev
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   3/3     3            3           2m42s

# UP-TO-DATE:成功升级的副本数量
# AVAILABLE:可用副本的数量
[root@master ~]#kubectl get deploy -n dev -o wide
NAME    READY UP-TO-DATE  AVAILABLE   AGE     CONTAINERS   IMAGES              SELECTOR
nginx   3/3     3         3           2m51s   nginx        nginx:latest        run=nginx

# 查看deployment详细信息
[root@master ~]#kubectl get deploy nginx -n dev -o wide
Name:                   nginx
Namespace:              dev
CreationTimestamp:      Wed, 08 May 2021 11:14:14 +0800
Labels:                 run=nginx
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               run=nginx
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  run=nginx
  Containers:
   nginx:
    Image:        nginx:latest
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-5ff7956ff6 (3/3 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  5m43s  deployment-controller  Scaled up replicaset nginx-5ff7956ff6 to 3


# 删除
[root@master ~]#kubectl delete deploy nginx -n dev
deployment.apps "nginx" deleted

 2 配置

创建一个deploy-nginx.yaml,内容如下:

apiVersion: apps/v1
kind: deployment
metadata:
    name: nginx
    namespace: dev
dev:
    replicas: 3
    selector: 
    matchlabels:
        run: nginx
   template:
       metadata:
           labels:
               run: nginx
   spec:
       containers:
         - image: nginx:latest
           name: nginx
           ports:
             - containerPort: 80
               protocol: TCP

然后就可以执行对应的创建和删除命令了:

# 创建
kubectl create -f deploy-nginx.yaml
# 删除
kubectl delete -f deploy-nginx.yaml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值