k8s-Controller

本文围绕Kubernetes展开,介绍了Controller在集群上管理和运行容器对象的功能,阐述了Pod与Controller通过label标签建立关系,以实现应用的弹性伸缩、滚动升级等。还说明了Deployment适用于部署无状态应用,以及使用其部署应用、升级回滚和弹性伸缩的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Controller概述

在集群上管理和运行容器对象

2、Pod和Controller关系

Pod是通过controller实现应用的维护:弹性伸缩、滚动升级等

Pod和Controller之间建立关系的方式?
spec:
  replicas: 1
  selector: 
    matchLabels:
      app: web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web
    spec:
      containers:
      - image: nginx
      name: nginx
  • 通过label标签建立关系
  • 控制器中selector。Pod中标签labels

3、deployment应用场景

(1)部署无状态应用(web服务、微服务)

(2)管理Pod和ReplicaSet

(3)部署、滚动升级

4、使用Deployment(无状态)方式部署应用

//创建pod只生成yaml文件,
    --dry-run 表示尝试执行,实际不运行
    > web.yaml 表示生成yaml文件导出到根目录
kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml


//生成的yaml文件可以进行编辑


//使用yaml文件进行应用部署
kubectl apply -f web.yaml


//查看创建成功的pod
kubectl get pods


//对外进行发布(暴露端口)
    --port 表示当前端口
    --target-port=80 表示对外端口
    --name 表示对此发布的命名
kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml > web1.yaml
kubectl apply -f web1.yaml
kubectl get pods.svc

5、升级、回滚

//直接vi编辑web.yaml中 - image的版本为1.14,并且部署应用
kubectl apply -f web.yaml

//将版本升级为1.15
kubectl set image deployment web nginx=nginx:1.15

//查看应用升级状态
kubectl rollout status deployment web

//查看升级历史版本
kubectl rollout history deployment web

//还原到上一个版本
kubectl rollout undo deployment web 

//还原到指定版本
kubectl rollout undo deployment web --to-revision=2

6、弹性伸缩

//设置应用的副本数
kubectl scale deployment web --replicas=10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值