阿里云容器服务K8s基础入门(二)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 阿里云容器服务K8s基础入门

阿里云容器K8s入门训练营:阿里云容器服务K8s基础入门(二)

课程地址https://developer.aliyun.com/trainingcamp/83262c78375b422d90d9bdfa86fb4d46?spm=a2c6h.26142516.J_2566289780.3.37c67cbd7bCsFs


阿里云容器服务K8s基础入门(二)


三、K8S的核心架构

K8S的核心架构由两个部分组成,一个是master,一个是loadmaster 叫做主控节点,也就是管理节点。 load 也叫做worker 节点,是工作节点,我们可以看到 master 就像一个大佬,负责管理所有的节点,然后负责调度 Pod 在哪个节点上面去运行,然后我们的工作节点就只是怎么样去运行所有的容器,所以这个有点像我们的大脑跟手一样。

比如最简单的,你现在拿一个水杯来喝水,这个喝水的指令肯定是由你大脑去下发的,拿起水杯,然后将这个水杯送到你的嘴里面,这个动作肯定是由你的手来做的,这个肯定都是缺一不可的,我们的k8s它也是这样的一个架构。

 image.png

K8S master 服务端由这四个组件所构成。第一个kube- apiServer 就相当于是一个集群的 API 接口。当用户通过比如这个命令两行工具 kube ct l 进行命令的创建,删除一个这个 K8S 的对象的时候,这个命令它会先发给这个Kube-apiServer,它会去验证用户的请求是否合法,然后再将这个请求放到 etcd 里面。

ETCD 它是一个分布式的存储系统,这个是被所有的组件所共享数据信息的,其他组件是不是也能够收到这个信息。

那么比如 kube controller manager,它在收到这个信息之后,它就会可以根据这上面的信息去创建或者删除相应的这个Pod

Pod 创建好之后,我们是不是要将这个 Pod 调度到我们的工作节点上面,那么这个调度就用就由 kube -scheduler 这个组件去完成。

image.png 


K8S的客户端有三个组件, kubelet 负责管理节点上容器的创建和删除,并且与 master 节点进行通信。 Kube-proxy 它是负责 K8S 服务的通信及负载均衡的服务的,也就相当于是我们这个工作节点上面的网络代理。还有这个 container runtime就是负责去运行容器的,并对容器做一个基础的管理。

image.png 


 

四、K8S的工作和使用流程

在了解 K8S 的各个组件之后,我们再来看它的整个工作和使用流程。当我们的运维人员开始发出指令,这个时候kube API Server 就会去响应指令,然后去根据这个指令的内容去创建一个deployment,这样这个任务进行发布,存储在 etcd 里面,控制器会从这个 etcd 里面发现有这样的一个development,然后根据里面的一些数据去创建Pod,然后加入到工作队列,创建完之后,就会更新,我们的这个 Google sky 有了就会将创建好的 Pod 调度到相应的节点当中,结果也会存储在 etcd 里面。

pod调到 kube这个工作节点之后,这个kubelet就会基于相关的情况去运行这个Pod或者增加Pod,然后kube proxy 作为这个网络组件会对 Pod 进行服务的发现和负载均衡,然后控制器会检测 Pod 的相应的状况做出相应的判断,比如删除或者重建。

 

image.png

 

五、K8S的使用场景

K8S的使用场景有很多,我们来看第一个场景就是调度这些各个颜色的小球,就是我们的Pod,不同的颜色代表着不同应用。我们的 K8S 可以根据调度算法和策略,将相应的 Pod 调度到它最优的工作节点上面,这是它的第一个场景调度。

K8S的第二个使用场景自动恢复,就是当有一个节点挂掉,然后上面的 Pod 容器应用岂不是就会出现问题,但是我们的 K8S 可以将这个 Pod 调到其他正常的节点上面,保证这个应用是不中断的,所以 K8S 可以提供服务零停机的保障,然后可以让系统自愈。

 image.png


 

K8S的第三个使用场景就是弹性伸缩,我们可以看到在这个图中有一个节点,它上面运行了非常多的Pod,所以它是比较繁忙的。这个时候我们可以去增加相应的节点,然后将这些 Pod 调入到其他比较空闲的节点上面。

这个时候我们这个节点它的负载是不是就没那么高?也不会出现这种所谓的过度的忙碌,其实还可以做到怎么样的谈性伸缩,就是当一个 Pod 或者两个 Pod 没有办法去应对突发的流量,这个时候我们可以怎么样?可以去增加 Pod 的数量来去应对这些突发的流量。这是关于 K8S 使用场景的一个简单说明。


 image.png

六、容器服务ACK介绍

相信通过刚刚的讲解,大家对于 K8S 应该有了一个基本的认识和了解。我们接下来就来带大家学习阿里云的容器服务Kubernetes板,阿里云的容器服务Kubernetes 板说起来比较长,所以我们一般简称为 ack

阿里云的 ACK 和原生的 K8S 区别:阿里云的 K8S 它也是基于 K8S 二次开发和定制,因为 K8S 它是开源的,然后它主要是针对云上的这种应用场景和运行的环境进行了优化和改进。

虽然阿里云k8s是基于原生的 K8S 来开发,但是它是对原生的 K8S 是做了优化和改进的。

比如它具备更便捷的基础类的管理,在管理方面更便捷,然后服务能力也更加强大,而且它还深度的整合了阿里云的生态,像阿里云很多的产品,比如我们之前所讲过的容器进氧服务,还有一些比如ASM 服务网格,它都是可以直接去连接使用的,有了这些能力后,它就可以帮助用户快速的去构建发布。

还有去管理容器。在弹性伸缩方面,因为它的底层是谁?是阿里云,所以它的资源接近于无限,它具备有强大的自动化和弹性伸缩的能力。阿里云的 K8S 它是基于的是阿里云拥有像洛神云网络这样的组件系统,所以阿里云的 a c k,它具备有良好的安全性能和非常灵活的网络架构,不管你是在各种各样的云环境下,还是私有云的环境下面,都可以进行部署和这个管理,还是很方便的。所以阿里云的 a c k可以理解为是更强大的K8S,更适应于云环境的K8S

image.png

我们在 阿里云上面使用 ack 时,有三种版本供我们选择,分别是专有版、托管版以及无服务器版。使用专有版我们需要在阿里云控制台上面创建 master 节点以及 worker 节点,这样创建之后有优势也有劣势,优势就是可以对集群基础设施进行更细粒度的控制,也就是它会更加的灵活。

但是缺点就是你需要自行的维护,因为这个是需要对技术团队有要求,所以在选择产品的时候一定要看自身团队的技术实力,如果有这个技术实力去维护,可以去选择专有版的K8S,而它的费用可能也会多一点,像托管版它是不需要承担 master 的节点的费用的,但是利用专用版的话是需要承担 master 的节点以及 worker 节点的资源费用的。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
29天前
|
Kubernetes 容器
k8s容器时间与服务器时间不一致问题
k8s容器时间与服务器时间不一致问题
22 0
|
19天前
|
Kubernetes 监控 Cloud Native
关于容器服务 Kubernetes 版 ACK的介绍
【4月更文挑战第8天】容器服务 Kubernetes 版 ACK
155 0
关于容器服务 Kubernetes 版 ACK的介绍
|
5天前
|
存储 Kubernetes Docker
Kubernetes(K8S)集群管理Docker容器(概念篇)
Kubernetes(K8S)集群管理Docker容器(概念篇)
|
14天前
|
程序员 索引 Python
06-python数据容器-set(集合)入门基础操作
06-python数据容器-set(集合)入门基础操作
|
17天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
27 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
28天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
19 0
|
1月前
|
Kubernetes API 调度
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
61 0
|
1月前
|
Kubernetes SDN 微服务
微服务与 Kubernetes 容器云的边界
【2月更文挑战第30天】该文探讨了微服务与Kubernetes集群的关系,主要关注是否应跨多集群部署。理想的状况是每个微服务对应一个Kubernetes集群,配置和注册中心在同一集群内,以减少网络延迟。
|
1月前
|
存储 Kubernetes 监控
容器服务ACK常见问题之容器服务ACK启动时readiness告警如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多