Kubernetes(K8S) Controller - Deployment 介绍

kubernetes,k8s,controller,deployment,介绍 · 浏览次数 : 59

小编点评

**Controller 和 Pod 之间的关系** Controller 是 Kubernetes 中的一个管理和运行容器的对象,它负责管理和运行容器。 Pod 是 Kubernetes 中的一个容器,它代表一个运行单个应用程序的资源。 **Deployment 控制器应用场景** Deployment 控制器是 Kubernetes 中的一个重要的组件,它负责将应用程序部署到 Kubernetes 中的多个 Pod 上。 **MatchLabels 和 labels 的用法** MatchLabels 和 labels 是 Deployment 控制器使用来匹配容器的标签和属性的工具。 label 是一个键值对,其中键是标签名称,而值是标签的值。 **kubectl create 和 apply 命令的用法** kubectl create 和 apply 命令用于创建和发布一个新的 Kubernetes recursos。 **kubectl set 和 kubectl rollout 的用法** kubectl set 命令用于设置容器的属性,而 kubectl rollout 命令用于执行容器的滚动升级操作。 **kubectl rollout undo 的用法** kubectl rollout undo 命令用于回滚一个 Kubernetes recursos的版本。

正文

什么是controller

实际存在的,管理和运行容器的对象

Pod 和 Controller 关系

Pod 是通过 Controller 实现应用的运维,比如伸缩、滚动升级等等
Pod 和 Controller 之间通过 label 标签建立关系

Deployment 控制器应用场景

场景:Web服务、微服务
部署无状态应用
管理Pod和ReplicaSet
部署、滚动升级等功能

yaml 文件字段说明

Kubernetes(K8S) yaml 介绍

Deployment 控制器应用部署

image
通过 matchLabels 和 labels 进行匹配

  • 导出 yaml 文件 kubectl create
  • 编辑 yaml 文件
  • 进行部署,kubectl apply -f
  • 对外发布,kubectl expose deployment 或者在 yaml 中编辑 NodePort

升级回滚

  • 升级
# 命令修改
[root@k8smaster ~]# kubectl set image deployment/javademo1 vipsoft=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:2.0
# 手动修改
# Containers:
#   vipsoft:
#    Image:        registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0  #将 :1.0 改成 2.0
# 一旦镜像名(或 Pod 定义)发生了修改,则触发 k8s 系统完成 Deployment 所有运行 Pod 的滚动升级操作
[root@k8smaster ~]# kubectl edit deployment/javademo1
  • 回滚
# 查看历史版本
[root@k8smaster ~]# kubectl rollout history deployment/javademo1
# 这边没加参娄,回滚到上一个版本
[root@k8smaster ~]# kubectl rollout undo deployment/javademo1
# 回到指定的版本
[root@k8smaster ~]# kubeetl rollout undo deployment/javademo1 --to-revision=2 

Kubernetes(K8S) Deployment 升级和回滚

弹性伸缩

# 创建 3 个副本
[root@k8smaster ~]# kubectl scale deployment javademo1 --replicase=3

与Kubernetes(K8S) Controller - Deployment 介绍相似的内容:

Kubernetes(K8S) Controller - Deployment 介绍

什么是controller 实际存在的,管理和运行容器的对象 Pod 和 Controller 关系 Pod 是通过 Controller 实现应用的运维,比如伸缩、滚动升级等等 Pod 和 Controller 之间通过 label 标签建立关系 Deployment 控制器应用场景 场景:Web

Kubernetes(K8S) Controller - StatefulSet、DaemonSet 介绍

无状态和有状态 无状态 Deployment 认为Pod 都是一样的。javademo1-6fb64c4664-dj4dh、javademo1-6fb64c4664-dj54s 它们的内容是一样的。 没有顺序要求,先启第一个还是启第二个无所谓 不用考虑在哪个 node 上运行 随意进行伸缩和扩展 有

Kubernetes(K8S) 介绍

Master Api Server 统一入口,以 Restful 方式,交给 etcd 存储 Scheduler 节点调试,选择 Node 节点,做应用部署 Controller Manager 处理集群中常规后台任务,一个资源对应一个控制器 etcd 存储系统,用于保存集群相关的数据 Node k

二进制安装Kubernetes(k8s)v1.30.1

二进制安装Kubernetes(k8s)v1.30.1 https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。 我使用IPV6的目的是在公网进行访问,所以

DevSecOps 需要知道的十大 K8s 安全风险及建议

Kubernetes (K8s)是现代云原生世界中的容器管理平台。它实现了灵活、可扩展地开发、部署和管理微服务。K8s 能够与各种云提供商、容器运行时接口、身份验证提供商和可扩展集成点一起工作。然而 K8s 的集成方法可以在任何基础设施上运行任何容器化应用程序,这使得围绕 K8s 和其上的应用程序堆

Kubernetes(K8S) Deployment 拉取阿里云镜像部署

Docker Image 推到阿里云仓库,可以看 SpringBoot Docker 发布到 阿里仓库 1. 阿里镜像仓库加了授权,所以 K8S 拉之前要做下授权处理 [root@k8smaster ~]# kubectl create secret docker-registry registry

Kubernetes(K8S) 拉取镜像 ImagePullBackOff pull access denied

K8S 拉取阿里云镜像 第一次用时,没注意 授权,所以在 kubectl apply 后一直出现 ImagePullBackOff [root@k8smaster ~]# kubectl apply -f javademo1.yaml deployment.apps/javademo1 create

Kubernetes(K8S) Deployment 升级和回滚

创建部署详见 Kubernetes(K8S) Deployment 部署 Pod 传统应用升级,一般是V1.0的jar包,有一个应对 1.0 的 shell 启动脚本。升级时,传 2.0 的 jar包,配置 2.0 的 shell 脚本。 执行顺序为,停1.0的服务,启2.0的服务,有问题时,把2.

Kubernetes(K8S) 镜像拉取策略 imagePullPolicy

镜像仓库,镜像已更新,版本没更新, K8S 拉取后,还是早的服务,原因:imagePullPolicy 镜像拉取策略 默认为本地有了就不拉取,需要修改 [root@k8smaster ~]# kubectl edit deployment/javademo1 ..... spec: containe

Kubernetes(K8S) Node NotReady 节点资源不足 Pod无法运行

k8s 线上集群中 Node 节点状态变成 NotReady 状态,导致整个 Node 节点中容器停止服务。 一个 Node 节点中是可以运行多个 Pod 容器,每个 Pod 容器可以运行多个实例 App 容器。Node 节点不可用,就会直接导致 Node 节点中所有的容器不可用,Node 节点是否