华为云云原生王者之路集训营(黄金-第三章和第四章)

【摘要】 华为云云原生王者之路集训营(黄金-第三章和第四章)

第三章 Kubernetes系统快速入门

1.kubernetes介绍

云计算的发展历程

“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

kubernets概览

模型对象

1.Pod 能够创建、调度和管理最小部署单元

2.Service 一个Pod的逻辑集合和访问这个集合的策略

3.Deployment 无状态工作负载 StatefulSet 有状态工作负载

增删改查 apiserver

功能组件 Master: apiserver Scheduler Controller Manager

Node: Kubelet Kube-proxy

功能特性: Pod调度 部署启动 运行监控 服务发现 升级运维 扩容缩容

关键概念-Pod

在Kubernetes中,Pods是能够创建、调度、和管理的最小部署单元,是一组容器的集合, 而不是单独的应用容器。

同一个Pod里的容器共享同一个网络命名空间,IP地址及 端口空间。

从生命周期来说,Pod是短暂的而不是长久的应用。Pods被调度到节点,保持在这个节点上直到被销毁。

POD实例:

{

“kind”: “Pod”,

“apiVersion”: “v1”,

“metadata”: {

“name”: “redis-django”,

“labels”:{

“app”: “webapp”

}

},

“spec”:{

“containers”: [

{

name”: “key-value-store”,

“image”: “redis”

},

{

“name”: “frontend”,

“image”: “django”

}

]

}

}

Pod详解-容器(Containers)

Infrastructure Container:基础容器

1.用户不可见,无需感知

2.维护整个Pod网络空间

InitContainers:初始化容器,一般用于服务等待处理以及注册Pod信息等

1.先于业务容器开始执行

2.顺序执行,执行成功退出(exit0) ,全部执行成功后开始启动业务容器

Containers:业务容器(Tomcat,nginx等)

并行启动,启动成功后一直Running

容器基本组成:

镜像部分: 镜像地址和拉取策略 拉取镜像的认证凭据

启动命令:

command:替换docker容器的entrypoint

args: 作为docker容器entrypoint的入参

计算资源:

请求值:调度依据

限制值:容器最大能使用的规格

Pod详解-外部输入

Pod可以接收的外部输入方式:环境变量、配置文件以及密钥。

环境变量:使用简单,但一旦变更后必须重启容器。

Key-value 自定义 From 配置文件(configmap) From密钥(Secret)

以卷形式挂载到容器内使用,权限可控。 配置文件(configmap) 密钥(secret)

Pod与工作负载的关系

通过label-selector和owerReference 相关联

Pod 通过工作负载实现应用的运维,如伸缩、升级等

关键工作负载-ReplicaSet

  • ReplicaSet—–副本控制器
  • 确保Pod的一定数量的份数(replica)在运行。如果超过这个数量,控制器会杀死一些,如果少了,控制器会启动一些。
  • ReplicaSet用于解决pod的扩容和缩容问题(HA,工作负载等)
  • 通常用于无状态应用

关键工作负载–Deployment

Kubernetes Deployment提供了官方的用于更新Pod和Replica Set (下一代的Replication Controller)的方法,您可以在Deployment对象中只描述您所期望的理想状态(预期的运行状态),Deployment控制器为您将现在的实际状态转换成您期望的状态;

Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的Deployment等功能,在某种程度上,Deployment可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、操作风险。

Deployment的典型用例:

1.使用Deployment来启动(上线/部署)一个Pod或者ReplicaSet

2.检查一个Deployment是否成功执行

3.更新Deployment来重新创建相应的Pods(例如,需要使用一个新的Ilmage).

4.如果现有的Deployment不稳定,那么回滚到一个早期的稳定的Deployment版本

users:命令行,接口为主

master:

etcd 保存了整个集群的状态;

apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

考虑HA或多活会有多个master,非实验环境下node都会有很多

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享