• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
gys001
博客园    首页    新随笔    联系   管理    订阅  订阅

k8s实战入门——Deployment

Deployment

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

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

image-20200408193950807

命令操作
# 命令格式: 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
posted @ 2022-11-09 14:04  gys001  阅读(1005)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3