mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
style: apply global formatting fixes (struct, spacing, zhlint)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 部署 Kubernetes
|
||||
|
||||
目前,Kubernetes 支持在多种环境下使用,包括本地主机(Ubuntu、Debian、CentOS、Fedora 等)、云服务([腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)、[阿里云](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy)、[百度云](https://cloud.baidu.com/product/cce.html) 等)。
|
||||
目前,Kubernetes 支持在多种环境下使用,包括本地主机 (Ubuntu、Debian、CentOS、Fedora 等)、云服务 ([腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)、[阿里云](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy)、[百度云](https://cloud.baidu.com/product/cce.html)等)。
|
||||
|
||||
你可以使用以下几种方式部署 Kubernetes:
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
### 核心特性
|
||||
|
||||
* **轻量级**:移除过时的、非必须的 Kubernetes 功能(如传统的云提供商插件),使用 SQLite 作为默认数据存储(也支持 Etcd/MySQL/Postgres)。
|
||||
* **单一二进制**:所有组件(API Server, Controller Manager, Scheduler, Kubelet, Kube-proxy)打包在一个进程中运行。
|
||||
* **轻量级**:移除过时的、非必须的 Kubernetes 功能 (如传统的云提供商插件),使用 SQLite 作为默认数据存储 (也支持 Etcd/MySQL/Postgres)。
|
||||
* **单一二进制**:所有组件 (API Server,Controller Manager,Scheduler,Kubelet,Kube-proxy) 打包在一个进程中运行。
|
||||
* **开箱即用**:内置 Helm Controller、Traefik Ingress controller、ServiceLB、Local-Path-Provisioner。
|
||||
* **安全**:默认启用安全配置,基于 TLS 通信。
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
K3s 的安装非常简单,官方提供了便捷的安装脚本。
|
||||
|
||||
#### 脚本安装(Linux)
|
||||
#### 脚本安装
|
||||
|
||||
K3s 提供了极为便捷的安装脚本:
|
||||
|
||||
@@ -39,7 +39,7 @@ k3s-master Ready control-plane,master 1m v1.35.1+k3s1
|
||||
|
||||
### 快速使用
|
||||
|
||||
K3s 内置了 `kubectl` 命令(通过 `k3s kubectl` 调用),为了方便,通常会建立别名或配置 `KUBECONFIG`。
|
||||
K3s 内置了 `kubectl` 命令 (通过 `k3s kubectl` 调用),为了方便,通常会建立别名或配置 `KUBECONFIG`。
|
||||
|
||||
```bash
|
||||
## 读取 K3s 的配置文件
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
### 为什么选择 Kind
|
||||
|
||||
Kind 相比其他本地集群方案(如 Minikube)有以下显著优势:
|
||||
Kind 相比其他本地集群方案 (如 Minikube) 有以下显著优势:
|
||||
|
||||
* **轻量便捷**:只要有 Docker 环境即可,无需额外虚拟机。
|
||||
* **多集群支持**:可以轻松在本地启动多个集群。
|
||||
* **多版本支持**:支持指定 Kubernetes 版本进行测试。
|
||||
* **HA 支持**:支持模拟高可用集群(多 Control Plane)。
|
||||
* **HA 支持**:支持模拟高可用集群 (多 Control Plane)。
|
||||
|
||||
### 安装 Kind
|
||||
|
||||
@@ -23,7 +23,7 @@ Kind 是一个二进制文件,并在 PATH 中即可使用。以下是不同系
|
||||
brew install kind
|
||||
```
|
||||
|
||||
#### Linux / Windows(WSL2)
|
||||
#### Linux / Windows
|
||||
|
||||
可以下载二进制文件:
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
## 使用 kubeadm 部署 Kubernetes(使用 Docker)
|
||||
## 使用 kubeadm 部署 Kubernetes (使用 Docker)
|
||||
|
||||
`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令,作为快速创建 `Kubernetes` 集群的最佳实践。
|
||||
|
||||
> ⚠️ **重要说明**:自 Kubernetes 1.24 起,内置 `dockershim` 已被移除,Kubernetes 默认不再直接使用 Docker Engine 作为容器运行时(CRI)。因此,**更推荐参考**同目录下的《[使用 kubeadm 部署 Kubernetes(CRI 使用 containerd)](kubeadm.md)》。
|
||||
> ⚠️ **重要说明**:自 Kubernetes 1.24 起,内置 `dockershim` 已被移除,Kubernetes 默认不再直接使用 Docker Engine 作为容器运行时 (CRI)。因此,**更推荐参考**同目录下的《[使用 kubeadm 部署 Kubernetes (CRI 使用 containerd)](kubeadm.md)》。
|
||||
>
|
||||
> 本文档主要用于历史环境/学习目的:如果你确实需要在较新版本中继续使用 Docker Engine,通常需要额外部署 `cri-dockerd` 并在 `kubeadm init/join` 中指定 `--cri-socket`。
|
||||
|
||||
### 安装 Docker
|
||||
|
||||
参考 [安装 Docker](../../03_install/README.md) 一节安装 Docker。
|
||||
参考[安装 Docker](../../03_install/README.md) 一节安装 Docker。
|
||||
|
||||
### 安装 **kubelet****kubeadm****kubectl**
|
||||
|
||||
@@ -58,6 +58,8 @@ $ sudo yum install -y kubelet kubeadm kubectl
|
||||
|
||||
### 修改内核的运行参数
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 加载内核模块
|
||||
|
||||
运行以下命令:
|
||||
@@ -72,7 +74,7 @@ $ sudo modprobe overlay
|
||||
$ sudo modprobe br_netfilter
|
||||
```
|
||||
|
||||
#### 禁用 swap(必须)
|
||||
#### 禁用 swap (必须)
|
||||
|
||||
kubelet 默认要求禁用 swap,否则可能导致初始化失败或节点无法加入集群。
|
||||
|
||||
@@ -101,6 +103,10 @@ $ sysctl --system
|
||||
|
||||
为了让 kubelet 正确运行,我们需要对其进行一些必要的配置。
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 修改 `kubelet.service`
|
||||
|
||||
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
|
||||
@@ -169,7 +175,7 @@ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
|
||||
#### node 工作节点
|
||||
|
||||
在 **另一主机**重复**部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。
|
||||
在**另一主机**重复**部署**小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。
|
||||
|
||||
```bash
|
||||
$ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
@@ -186,7 +192,7 @@ $ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
|
||||
* `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上;
|
||||
|
||||
* `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。
|
||||
* `controller-manager` 负责管理控制器,包括 endpoint-controller (刷新服务和 pod 的关联信息) 和 replication-controller (维护某个 pod 的复制为配置的数值)。
|
||||
|
||||
#### 工作节点服务
|
||||
|
||||
@@ -208,6 +214,10 @@ $ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
|
||||
这里以 `flannel` 为例进行介绍。
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### flannel
|
||||
|
||||
检查 podCIDR 设置
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
## 使用 kubeadm 部署 Kubernetes(CRI 使用 containerd)
|
||||
## 使用 kubeadm 部署 Kubernetes (CRI 使用 containerd)
|
||||
|
||||
`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令,作为快速创建 `Kubernetes` 集群的最佳实践。
|
||||
|
||||
> **版本说明**:Kubernetes 版本更新较快(约每 4 个月一个新版本),本文档基于 Kubernetes 1.35 编写。请访问 [Kubernetes 官方发布页](https://kubernetes.io/releases/) 获取最新版本信息。
|
||||
> **版本说明**:Kubernetes 版本更新较快 (约每 4 个月一个新版本),本文档基于 Kubernetes 1.35 编写。请访问 [Kubernetes 官方发布页](https://kubernetes.io/releases/)获取最新版本信息。
|
||||
|
||||
### 安装 containerd
|
||||
|
||||
参考 [安装 Docker](../../03_install/README.md) 一节添加 apt/yum 源,之后执行如下命令。
|
||||
参考[安装 Docker](../../03_install/README.md) 一节添加 apt/yum 源,之后执行如下命令。
|
||||
|
||||
```bash
|
||||
## debian 系
|
||||
@@ -276,6 +276,8 @@ $ sudo yum install -y kubelet kubeadm kubectl cri-tools kubernetes-cni
|
||||
|
||||
### 修改内核的运行参数
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 加载内核模块
|
||||
|
||||
运行以下命令:
|
||||
@@ -290,7 +292,7 @@ $ sudo modprobe overlay
|
||||
$ sudo modprobe br_netfilter
|
||||
```
|
||||
|
||||
#### 禁用 swap(必须)
|
||||
#### 禁用 swap (必须)
|
||||
|
||||
kubelet 默认要求禁用 swap,否则可能导致初始化失败或节点无法加入集群。
|
||||
|
||||
@@ -319,6 +321,10 @@ $ sysctl --system
|
||||
|
||||
为了让 kubelet 正确运行,我们需要对其进行一些必要的配置。
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 修改 `kubelet.service`
|
||||
|
||||
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
|
||||
@@ -393,7 +399,7 @@ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
|
||||
#### node 工作节点
|
||||
|
||||
在 **另一主机**重复**部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。
|
||||
在**另一主机**重复**部署**小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。
|
||||
|
||||
```bash
|
||||
$ systemctl enable cri-containerd
|
||||
@@ -420,7 +426,7 @@ CONTAINER_RUNTIME_ENDPOINT=/run/cri-containerd/cri-containerd.sock crictl ps -a
|
||||
|
||||
* `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上;
|
||||
|
||||
* `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。
|
||||
* `controller-manager` 负责管理控制器,包括 endpoint-controller (刷新服务和 pod 的关联信息) 和 replication-controller (维护某个 pod 的复制为配置的数值)。
|
||||
|
||||
#### 工作节点服务
|
||||
|
||||
@@ -442,6 +448,10 @@ CONTAINER_RUNTIME_ENDPOINT=/run/cri-containerd/cri-containerd.sock crictl ps -a
|
||||
|
||||
这里以 `flannel` 为例进行介绍。
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### flannel
|
||||
|
||||
检查 podCIDR 设置
|
||||
|
||||
Reference in New Issue
Block a user