k8s的工作原理和部署方式
目录
安装cri-dockerd(所有主机中安装)(用的rpm包,也可以用二进制安装cri)
一、Kubernetes介绍
Kubernetes(常简称为 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由 Google 设计并开源,现已成为云原生应用的事实标准。
简单来说,Kubernetes 就像一个“容器集群的操作系统”,它负责管理成百上千台服务器(节点)上运行的容器,确保应用按照用户期望的方式运行。
二、Kubernetes 核心架构

Kubernetes 采用主从(Master-Worker)架构,主要由控制平面(Control Plane)和工作节点(Worker Nodes)两部分组成。
1. 控制平面(Master)
控制平面是集群的大脑,负责全局决策和调度。主要组件包括:
- API Server:集群的“前台”,所有组件都通过它与集群交互。
- etcd:分布式键值存储,保存集群的所有配置数据和状态。
- Scheduler:负责将 Pod 调度到合适的节点上运行。
- Controller Manager:运行各种控制器,确保集群的实际状态与期望状态一致。
2. 工作节点(Node)
工作节点是实际运行容器的工作机器。每个节点上运行着:
- Kubelet:节点代理,负责与 API Server 通信,管理本节点上的 Pod 和容器。
- Kube-proxy:网络代理,维护节点上的网络规则,实现服务发现和负载均衡。
- 容器运行时:如 Docker、containerd,负责运行容器。
工作流程
- 三用户通过
kubectl apply -f deployment.yaml提交一个 Deployment 资源。 - API Server 将资源定义写入 etcd。
- Deployment 控制器监听到新的 Deployment,创建对应数量的 ReplicaSet。
- ReplicaSet 控制器监听到新的 ReplicaSet,创建对应数量的 Pod。
- Scheduler 监听到未调度的 Pod,根据资源、亲和性等规则,选择一个合适的节点,将 Pod 绑定到该节点。
- 目标节点上的 Kubelet 监听到有 Pod 被调度到本节点,通过容器运行时拉取镜像并启动容器。
- 如果某个 Pod 故障,控制器会检测到实际状态与期望不符,并创建新的 Pod 来替换。
三、k8s 集群部署
| 主机 | IP | 角色 |
| controller | 172.25.254.51 | master,k8s集群控制节点 |
| node1 | 172.25.254.20 | worker,k8s集群工作节点 |
| node2 | 172.25.254.30 | worker,k8s集群工作节点 |
| harbor | 172.25.254.10 | harbor仓库 |
所有节点禁用selinux和防火墙
所有节点同步时间和解析
所有节点安装docker-ce
所有节点禁用swap,注意注释掉/etc/fstab文件中的定义
K8S中文官网: https://kubernetes.io/zh-cn/
构建harbor镜像仓库
安装docker在harbor仓库节点


生成key

编辑harbor配置文件


#编写启动脚本

启动并验证


所有主机配置

所有主机彼此建立解析

所有主机配置kubernetes安装源

kubernetes的部署
安装cri-dockerd(所有主机中安装)(用的rpm包,也可以用二进制安装cri)


#启动服务

安装构建kubernetes 集群所需软件
master节点
dnf install kubelet kubeadm kubectl -y
systemctl enable --now kubelet.service
node节点
dnf install kubelet kubeadm -y
systemctl enable --now kubelet.service

添加master补齐功能

下载kubernetes集群所需镜像并上传

在master中初始化kubernetes集群

添加kubernets环境变量到本机

添加node节点到本集群
在node1和node2中执行命令


安装网络插件



openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)