k8s-ocp-yaml
  • 简介
  • 微软云 Azure
    • 2022-10-18-Azure Portal创建k8s集群
    • 2022-10-30-Azure容器镜像仓库
    • 2023-03-08-基于Policy实现tag批量分配与继承
    • 2023-02-24-Terraform 安装与简单demo
    • 2023-03-10-Terraform 创建 private AKS
    • 2023-03-22-Terraform 离线环境使用
    • 2023-03-24-Terraform 踩坑记1-InternalOperationError
  • yaml文件书写注意项
    • 2018-05-29-yaml文件来源
    • 2018-05-29-多资源对象写法
  • kubernetes docs
    • 2020-04-24-kubectl-debug插件及openshift debug模式
    • 2020-04-23-k8s 利用subpathexpr处理日志落盘
    • 2020-04-14-metrics-server 轻量级监控
    • 2020-03-31-helm3 全新版本带来了什么
    • 2019-07-27-k8s openshift troubleshooting故障诊断
    • 2020-02-17-k8s CIS benchmark 安全基准测试
    • 2019-10-14-kubernetes 1.16 单机版在线安装
    • 2019-04-19-kubernetes 1.14 离线安装
    • 2018-11-20-kubernetes dashboard 免密登陆
    • 2018-04-07-kubernetes1.10 install offline
    • 2018-04-02-kubernetes1.9 install online
    • 2018-04-04-kubernetes1.9 HA install online
    • 2018-05-02-helm2 install
  • openshift docs
    • 2021-05-17-podman添加开机自启
    • 2020-06-23-openshift4.4 在线安装(包含allinone)静态ip
    • 2020-02-25-openshift 4.3 离线安装--DHCP方式
    • 2020-03-18-openshift4 operatorhub 离线部署
    • 2019-07-02-openshift origin 3.11 在线安装
    • 2019-09-24-openshift 对接AD域作为用户系统
    • 2019-11-13-openshift jenkins slave pod 自定义模板
  • 应用(deployment,rc,rs,volume,readiness,liveness)
    • 2018-05-31-deployment,rc,rs控制器
    • 2018-05-31-volume 容器存储
    • 2018-07-05-liveness readiness 健康检查
  • Openshift独有resource
    • 2019-08-08-template模板解读
  • docker相关文档
    • 2017-08-10-dockerfile 书写注意
    • 2017-08-10-dockerfile examples
    • 2017-07-19-dockerfile 命令
  • 容器云监控prometheus
    • 2019-10-22-安装部署与监控ingress-controller
    • 2020-05-30-组件功能介绍与监控数据来源
  • 中间件
    • 2020-03-30-kafka的安装与开启ACL权限控制
  • others
    • 2020-06-06-树莓派安装docker环境
  • Last part without title
Powered by GitBook
On this page
  • yaml 示例
  • 应用升级
  • 版本回退
  1. 应用(deployment,rc,rs,volume,readiness,liveness)

2018-05-31-deployment,rc,rs控制器

deployment 针对无状态服务, 为当前最常用的 pod 控制器,可以实现滚动升级与回滚。

Replica Set 用来取代 Replication Controller, ReplicaSet支持集合式的selector。

虽然ReplicaSet可以独立使用,但一般还是建议使用 Deployment 来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如ReplicaSet不支持rolling-update但Deployment支持)。

Replica Set 和 Replication Controller 的写法与 deployment 类似,以下均以 deployment 为例。

yaml 示例

注意层级,比如 image ports resources 为同一级, 若吧 volume 插入到 port 下面,会导致 port 参数失效。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    run: tomcat11   # deployment 的标签
  name: tomcat11   # deployment 的名字
spec:
  replicas: 2    # 副本数,pod 的数量
  selector:
    matchLabels:
      run: tomcat11   # 与下面的template.metadata.labels 匹配,表示 deployment 与 pod 的关系
  template:   # pod 属性
    metadata:
      labels:
        run: tomcat11   # pod 标签
    spec:
      containers:  # 容器属性
      - image: registry.cn-hangzhou.aliyuncs.com/misa/tomcat:9.0
        name: tomcat11
        ports:
        - containerPort: 8080
          name: port8080   # 多 port 情况下,要写 name 以区分
        - containerPort: 8090
          name: port8090  
        resources:   # 资源限制
          requests:  
            cpu: 200m
            memory: 200M
          limits:
            cpu: 400m
            memory: 400M
        volumeMounts:
        - mountPath: /tmp
          name: tmp-vol
      volumes:
      - name: tmp-vol
        hostPath:
          path: /tmp

需要注意的是创建的deployment 下会以rs作为二级控制器实现版本管理。

macbook :: ~ » kubectl run tomcat --image=tomcat:9.0 --port=8080

macbook :: ~ » kubectl get deployment
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
tomcat    1         1         1            1           41m
macbook :: ~ »
macbook :: ~ » kubectl get rs
NAME                DESIRED   CURRENT   READY     AGE
tomcat-7bddb697fc   1         1         1         41m

应用升级

升级镜像版本,set image 可以通过 --help 查看更多参数。 tomcat=tomcat:8.5 前面是容器名称,后面是镜像名称

升级会新增一个rs,记录了版本信息

macbook :: ~ » kubectl set image deployment/tomcat tomcat=tomcat:8.5 
deployment.apps "tomcat" image updated
macbook :: ~ »
macbook :: ~ » kubectl get rs -o wide
NAME                DESIRED   CURRENT   READY     AGE       CONTAINERS   IMAGES       SELECTOR
tomcat-7bddb697fc   0         0         0         50m       tomcat       tomcat:9.0   pod-template-hash=3688625397,run=tomcat
tomcat-879cdf45     1         1         0         2m        tomcat       tomcat:8.5   pod-template-hash=43578901,run=tomcat

版本回退

macbook :: ~ » kubectl rollout undo deployment tomcat  
deployment.apps "tomcat"
macbook :: ~ »
macbook :: ~ » kubectl get rs -o wide
NAME                DESIRED   CURRENT   READY     AGE       CONTAINERS   IMAGES       SELECTOR
tomcat-7bddb697fc   1         1         1         54m       tomcat       tomcat:9.0   pod-template-hash=3688625397,run=tomcat
tomcat-879cdf45     0         0         0         6m        tomcat       tomcat:8.5   pod-template-hash=43578901,run=tomcat

openshift的dc 同理,每个dc会有下一级rc,来做版本管理

Previous应用(deployment,rc,rs,volume,readiness,liveness)Next2018-05-31-volume 容器存储

Last updated 6 years ago