K8S 集群核心概念 Controller_介绍-分类-Deployment 控制器介绍_创建 Deployment 控制器类型应用 | 学习笔记

简介: 快速学习 K8S 集群核心概念 Controller_介绍-分类-Deployment 控制器介绍_创建 Deployment 控制器类型应用

开发者学堂课程【Kubernetes 极速入门:K8S 集群核心概念 Controller_介绍-分类-Deployment 控制器介绍_创建 Deployment 控制器类型应用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/658/detail/10912


K8S 集群核心概念 Controller_介绍-分类-Deployment 控制器介绍_创建 Deployment 控制器类型应用

 

内容介绍:

一、场景

二、学习目标

三、学习步骤

四、课程内容

 

一、场景

通过前面课程的学习,已经掌握了 Pod 管理操作,过程中发现当删除Pod时是可以直接删除的,如果在生产过程中误操作,Pod 同样也会轻易被删除的,因此,需要在k8s 集群中引入另一种概念 Controller (控制器),用于在 k8s 集群中以 loop 方式监视Pod 状态,如果其发现Pod被删除,将会重新拉起一个 Pod,以让 Pod 一直保持在用户期望状态。

 

二、学习目标

1.了解 Controller 作用

2.了解 Controller 分类

3.了解 Deployment 控制器作用

4.掌握创建 Deployment 控制器类型应用方法

5.掌握删除 Deployment 控制器类型应用方法

 

三、学习步骤

1.Controller 介绍

2.Controller 分类

3.Deployment 控制器介绍

4.创建 Deployment 控制器类型应用

5.删除 Deployment 控制器类型应用

 

四、课程内容

1.Controller 介绍

控制器

●目的:用于对应用运行的资源对象(主要是pod)进行监控

当 Pod 出现问题时,会把Pod重新拉起,以达到用户的期望状态

2.Controller分类

常见 Pod 控制器:

控制器名称

作用

Deployment

声明式更新控制器,用于发布无状态应用

ReplicaSet

副本集控制器,用于对Pod进行副本规模扩大或剪裁

statefulSet

有状态副本集,用于发布有状态应用

DaemonSet

在k8s集群每一个Node上运行一个副本,用于发布监控或日志收集类等应用(如果想要对整个k8s集群所有的节点,例如master节点和work节点进行监控,或者对其进行日志收集,可以使用DaemonSet控制器。)

Job

运行一次性作业任务(例如执行一个同步时间)

CronJob

运行周期性作业任务

3.Deployment 控制器介绍

●具有上线部署、滚动升级、创建副本、回滚到以前某一版本(成功/稳定)等功能。

●Deployment 包含 ReplicaSet,除非需要自定义升级功能或者根本不需要升级Pod,否则还是建议使用 Deployment 而不直接使用 Replica Set 。

4.创建 Deployment 控制器类型应用

方式一:通过 Kubect 命令行创建

命令

[rootemaster1 ~]# kubectl run nginx-app --image=nginx: latest -

-image-pu11-policy=IfNotPresent --replicas=2(通过两个pod运行起来)

输出

dep1oyment.apps/nginx-app created

具体操作:

[ root@master1 yamldir]# kubectl run nginx-app1 --image=nginx:latest --image-pull-

policy=IfNotPresent -- replicas=2

kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/vl or kubectl create instead

deployment.apps/nginx-app1 created

如何查看已经创建的应用

说明

nginx-app 是 deployment 控制器类型的应用名称

nginx : latest 是应用运行的 Pod 中的 Container 所使用的镜像

IfNotPresent 是 container 容器镜像下载策略,如果本地有镜像,使用本地,如果本地没有镜像,下载镜像

--replicas=2是指应用运行的 Pod 共计2个副本,这是用户的期望值,

Deployment 控制器中的 Replicaset 控制器会一直监控此应用运行的 Pod 副本状态,如果数量达不到用户期望,就会重新拉起一个新的 Pod,会让 Pod 数量一直维持在用户期望值数量。

命令

查看 Deployment 控制器类型应用

[rootemaster1 ~]#kubect1 get deployment.apps

命令

查看 Replicaset 控制器类型

[root@master1 ~]#kubectl get replicaset

命令

查 Pod 状态

[root@master1 ~]# kubectl get pods

具体操作:

[ root@master1 yamldir]#kubectl get deployment

NAME              READY      UP -TO-DATE       AVAILABLE       AGE

nginx-app1           2/2            2                2           75s

[ root@master1 yamldir]#kubectl get replicaset

NAME                  DESIRED      CURRENT       READY       AGE

nginx- app1-57c7c9c89d      2             2            2         2m12s

[ roptamaster1 yamldir]#kubectl get pods

NAME                    READY      STATUS    RESTARTS         AGE

nginx-app1-57c7c9c89d-qp8h8   1/1       Running       0           2m50s

nginx-app1-57c7c9c89d-tq868   1/1       Running       0          2m50s

访问 Pod

[ root@master1 yamldir]#kubectl get pods -o wide

NAME            READY       STATUS      RESTARTS      AGE       IP

NODE       NOMINATED NODE        READINESS GATES

nginx-app1-57c7c9c89d-qp8h8  1/1  Running       0       3m31s   172 .16.235.130

worker1  <none>         <none>

nginx-app1-57c7c9c89d-tq868   1/ 1  Running      0       3m31s     172.16 .189.66

worker2   <none>    <none>

[ root@master1 yamldir]# curl http://172.16.189.66

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
3天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第22天】在动态且复杂的微服务架构中,确保 Kubernetes 集群的高性能运行是至关重要的。本文将深入探讨针对 Kubernetes 集群性能优化的策略与实践,从节点资源配置、网络优化到应用部署模式等多个维度展开,旨在为运维工程师提供一套系统的性能调优方法论。通过实际案例分析与经验总结,读者可以掌握持续优化 Kubernetes 集群性能的有效手段,以适应不断变化的业务需求和技术挑战。
17 4
|
22天前
|
数据库 存储 监控
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
16 0
什么是 SAP HANA 内存数据库 的 Delta Storage
|
2天前
|
存储 运维 Kubernetes
Kubernetes 集群的监控与维护策略
【4月更文挑战第23天】 在微服务架构日益盛行的当下,容器编排工具如 Kubernetes 成为了运维工作的重要环节。然而,随着集群规模的增长和复杂性的提升,如何确保 Kubernetes 集群的高效稳定运行成为了一大挑战。本文将深入探讨 Kubernetes 集群的监控要点、常见问题及解决方案,并提出一系列切实可行的维护策略,旨在帮助运维人员有效管理和维护 Kubernetes 环境,保障服务的持续可用性和性能优化。
|
12天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
16 4
|
13天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
24 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
13天前
|
存储 Kubernetes 调度
|
11天前
|
Kubernetes 搜索推荐 Docker
使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装
使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装
53 17
|
23天前
|
运维 Kubernetes 容灾
kubernetes核心技术之Controller控制器知识总结
kubernetes核心技术之Controller控制器知识总结
14 1
|
24天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
16 0
|
24天前
|
Kubernetes 安全 网络安全
搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群
搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群
106 0

推荐镜像

更多