目录

一、Kubernetes介绍

二、Kubernetes 核心架构

1. 控制平面(Master)

2. 工作节点(Node)

工作流程

三、k8s 集群部署

构建harbor镜像仓库

生成key

启动并验证

所有主机配置

所有主机彼此建立解析

所有主机配置kubernetes安装源

kubernetes的部署

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

安装构建kubernetes 集群所需软件

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

在master中初始化kubernetes集群

添加kubernets环境变量到本机

添加node节点到本集群

安装网络插件


一、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,负责运行容器。

工作流程

  1. 三用户通过 kubectl apply -f deployment.yaml 提交一个 Deployment 资源。
  2. API Server 将资源定义写入 etcd。
  3. Deployment 控制器监听到新的 Deployment,创建对应数量的 ReplicaSet。
  4. ReplicaSet 控制器监听到新的 ReplicaSet,创建对应数量的 Pod。
  5. Scheduler 监听到未调度的 Pod,根据资源、亲和性等规则,选择一个合适的节点,将 Pod 绑定到该节点。
  6. 目标节点上的 Kubelet 监听到有 Pod 被调度到本节点,通过容器运行时拉取镜像并启动容器。
  7. 如果某个 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中执行命令

安装网络插件

Logo

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

更多推荐