k8s新版本(k8s最新版本)

k8s新版本(k8s最新版本)首先 K8s 并不是一个传统意义上的 PaaS 平台即服务的工具 它充分给使用者提供了很多很多选择的空间 K8s 不仅仅是一个 编排系统 它消除了编排的需要 K8s 通过声明式的 API 和一系列独立 可组合的控制器保证了应用总是在期望的状态 用户并不需要关心中间状态是如何转换的 K8s 是谷歌开源的容器集群管理系统 即一个大规模容器编排系统 是 Google 多年大规模容器管理技术

大家好,我是讯享网,很高兴认识大家。



首先,K8s并不是一个传统意义上的 PaaS平台即服务的工具,它充分给使用者提供了很多很多选择的空间。

K8s 不仅仅是一个 “编排系统”,它消除了编排的需要。K8s通过声明式的 API 和一系列独立、可组合的控制器保证了应用总是在期望的状态,用户并不需要关心中间状态是如何转换的。

K8s 是谷歌开源的容器集群管理系统,即一个大规模容器编排系统,是 Google 多年大规模容器管理技术 Borg 的开源版本。

可以用来完成以下一些主要功能:

用户可以使用 Label 以自己的方式组织管理资源,还可以使用 Annotation 来自定义资源的描述信息,比如为管理工具提供状态检查等。控制器也是构建在跟开发人员和用户使用的相同的 API 之上。用户 还可以编写自己的控制器和调度器,也可以通过各种插件机制扩展系统的功能。这使得可以方便地在 K8s 之上构建各种应用系统。

2.1 Container容器

它使用 namespace 隔离不同的软件运行环境,并通过镜像自包含软件的运行环境,从而使得容器可以很方便的在任何地方运行。

容器体积小且启动快,可以在每个容器镜像中打包一个应用程序。这种一对一 的应用镜像关系拥有很多好处。使用容器,不需要与外部的基础架构环境绑定, 因为每一个应用程序都不需要外部依赖,不需要与外部的基础架构环境依赖,从而完美解决了开发到生产环境的一致性问题。

容器同样比虚拟机更加透明,这有助于监测和管理。容器进程的生命周期由基础设施管理,而不是被进程管理器隐藏在容器内部。每个应用程序用容器封装,管理容器部署就等同于管理应用程序部署。


讯享网

2.2 Pod

Pod 是一组紧密关联的容器集合,它们共享 PID、IPC、Network 和 UTS namespace, 是 K8s调度的基本单位。Pod 内的多个容器共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。

在 Kubernetes 中,所有对象都使用 manifest(yaml 或 json)来定义,比如一个简单的 nginx 服务可以定义为 nginx.yaml,它包含一个镜像为 nginx 的容器:

2.3 Node

2.4 Label

Label 不提供唯一性,实际上经常是很多对象(如 Pods)都使用相同的 label 来标 志具体的应用。

Label 定义好后其他对象可以使用 Label Selector 来选择一组相同 label 的对象(比如 ReplicaSet 和 Service 用 label 来选择一组 Pod)

2.5 Annotations

Annotations 是 key/value 形式附加于对象的注解。不同于 Labels 用于标志和选择对象,Annotations 用来记录一些附加信息,用来辅助应用部署、安全策略以及调度策略等。

2.6 Service

Service 是应用服务的抽象,通过 labels 为应用提供负载均衡和服务发现。匹配 labels 的 Pod IP 和端口列表组成 endpoints,由 kube-proxy 负责将服务 IP 负载均衡到这些 endpoints 上。

每个 Service 都会自动分配一个 cluster IP(仅在集群内部可访问的虚拟地址)和 DNS 名,其他容器可以通过该地址或 DNS 来访问服务,不需要了解后端容器的运行。

3.1 K8s的工作方式

3.2 K8s的组件架构

3.2.1 控制平面组件

控制平面的组件对集群做出全局决策(如调度等),以及检测和响应集群事件(例如,当不满足部署的 replicas 字段时,启动新的 pod)。控制平面组件可以在集群中的任何节点上运行。但为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件,并且不会在此计算机上运行用户容器。

kube-apiserver
etcd
kube-scheduler
kube-controller-manager

从逻辑上讲,每个控制器都是一个单独的进程, 为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。这些控制器有:

节点控制器(Node Controller): 负责在节点出现故障时进行通知和响应。 任务控制器(Job controller): 监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成 端点控制器(Endpoints Controller): 填充端点(Endpoints)对象(即加入 Service 与 Pod) 服务帐户和令牌控制器(Service Account & Token Controllers): 为新的命名空间创建默认帐户和 API 访问令牌

cloud-controller-manager

3.2.2 Node组件

节点组件在每个节点上运行,维护运行的 Pod 并提供 Kubernetes 运行环境

kubelet
kube-proxy

K8s架构示意图

准备工作及注意事项:

4.1 基础环境准备

4.2 安装kubelet、kubeadm、kubectl

4.3 下载每个机器所需要的镜像

4.4 初始主节点

master成功之后提示:

接下来就通过上述命令,配置设置.kube/config。

4.5 安装网络组件

4.6 加入node节点

4.7 验证集群节点状态

小讯
上一篇 2025-04-20 08:04
下一篇 2025-05-09 14:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/191043.html