Fix and update

This commit is contained in:
baohua
2026-02-09 11:34:35 -08:00
parent 784c989789
commit bb94a9f617
136 changed files with 2146 additions and 262 deletions

View File

@@ -1,4 +1,4 @@
## 部署 Kubernetes
# 部署 Kubernetes
目前Kubernetes 支持在多种环境下使用包括本地主机UbuntuDebianCentOSFedora 云服务[腾讯云](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) 等)。

View File

@@ -12,6 +12,8 @@
### 测试
运行以下命令
```bash
$ kubectl version
```

View File

@@ -11,6 +11,8 @@
### 安装
K3s 的安装非常简单官方提供了便捷的安装脚本
#### 脚本安装Linux
K3s 提供了极为便捷的安装脚本
@@ -23,6 +25,8 @@ curl -sfL https://get.k3s.io | sh -
#### 查看状态
运行以下命令
```bash
sudo k3s kubectl get nodes
```
@@ -39,14 +43,18 @@ K3s 内置了 `kubectl` 命令(通过 `k3s kubectl` 调用),为了方便
```bash
## 读取 K3s 的配置文件
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
## 现在可以直接使用 kubectl
kubectl get pods -A
```
### 清理卸载
运行以下命令
```bash
/usr/local/bin/k3s-uninstall.sh
```

View File

@@ -4,6 +4,8 @@
### 为什么选择 Kind
Kind 相比其他本地集群方案 Minikube有以下显著优势
* **轻量便捷**只要有 Docker 环境即可无需额外虚拟机
* **多集群支持**可以轻松在本地启动多个集群
* **多版本支持**支持指定 Kubernetes 版本进行测试
@@ -11,18 +13,23 @@
### 安装 Kind
Kind 是一个二进制文件并在 PATH 中即可使用以下是不同系统的安装方法
#### macOS
运行以下命令
```bash
brew install kind
```
#### Linux / Windows (WSL2)
#### Linux / WindowsWSL2
可以下载二进制文件
```bash
## Linux AMD64
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
@@ -76,6 +83,8 @@ kind create cluster --config kind-config.yaml
### 删除集群
运行以下命令
```bash
kind delete cluster
```

View File

@@ -1,4 +1,4 @@
## 使用 kubeadm 部署 kubernetes(使用 Docker)
## 使用 kubeadm 部署 kubernetes使用 Docker
`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令作为快速创建 `kubernetes` 集群的最佳实践
@@ -8,8 +8,12 @@
### 安装 **kubelet** **kubeadm** **kubectl**
需要在每台机器上安装以下的软件包
#### Ubuntu/Debian
运行以下命令
```bash
$ apt-get update && apt-get install -y apt-transport-https
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
@@ -24,6 +28,8 @@ $ apt-get install -y kubelet kubeadm kubectl
#### CentOS/Fedora
运行以下命令
```bash
$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
@@ -40,6 +46,8 @@ $ sudo yum install -y kubelet kubeadm kubectl
### 修改内核的运行参数
运行以下命令
```bash
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
@@ -48,17 +56,21 @@ net.bridge.bridge-nf-call-ip6tables = 1
EOF
## 应用配置
$ sysctl --system
```
### 配置 kubelet
为了让 kubelet 正确运行我们需要对其进行一些必要的配置
#### 修改 `kubelet.service`
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
```bash
## 启用 ipvs 相关内核模块
[Service]
ExecStartPre=-/sbin/modprobe ip_vs
ExecStartPre=-/sbin/modprobe ip_vs_rr
@@ -74,8 +86,12 @@ $ sudo systemctl daemon-reload
### 部署
安装配置完成后我们将分别在 Master 节点和 Worker 节点上进行部署操作
#### master
运行以下命令
```bash
$ sudo kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--pod-network-cidr 10.244.0.0/16 \
@@ -116,7 +132,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 \
@@ -163,6 +179,7 @@ $ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
$ kubectl get node -o yaml | grep CIDR
## 输出
podCIDR: 10.244.0.0/16
podCIDRs:
```
@@ -179,7 +196,11 @@ $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Docu
$ kubectl taint nodes --all node-role.kubernetes.io/master-
## 恢复默认值
## $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule
具体内容如下:
```
### 参考文档

View File

@@ -1,4 +1,4 @@
## 使用 kubeadm 部署 kubernetes(CRI 使用 containerd)
## 使用 kubeadm 部署 kubernetesCRI 使用 containerd
`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令作为快速创建 `kubernetes` 集群的最佳实践
@@ -10,9 +10,11 @@
```bash
## debian 系
$ sudo apt install containerd.io
## rhel 系
$ sudo yum install containerd.io
```
@@ -36,12 +38,16 @@ KillMode=process
Restart=always
RestartSec=5
## Having non-zero Limit*s causes performance problems due to accounting overhead
## in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
## Comment TasksMax if your systemd version does not supports it.
## Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999
@@ -54,13 +60,16 @@ WantedBy=multi-user.target
```toml
version = 2
## persistent data location
root = "/var/lib/cri-containerd"
## runtime state information
state = "/run/cri-containerd"
plugin_dir = ""
disabled_plugins = []
required_plugins = []
## set containerd's OOM score
oom_score = 0
[grpc]
@@ -203,8 +212,12 @@ oom_score = 0
### 安装 **kubelet** **kubeadm** **kubectl** **cri-tools** **kubernetes-cni**
需要在每台机器上安装以下的软件包
#### Ubuntu/Debian
运行以下命令
```bash
$ apt-get update && apt-get install -y apt-transport-https
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
@@ -219,6 +232,8 @@ $ apt-get install -y kubelet kubeadm kubectl
#### CentOS/Fedora
运行以下命令
```bash
$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
@@ -235,6 +250,8 @@ $ sudo yum install -y kubelet kubeadm kubectl
### 修改内核的运行参数
运行以下命令
```bash
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
@@ -243,17 +260,21 @@ net.bridge.bridge-nf-call-ip6tables = 1
EOF
## 应用配置
$ sysctl --system
```
### 配置 kubelet
为了让 kubelet 正确运行我们需要对其进行一些必要的配置
#### 修改 `kubelet.service`
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
```bash
## 启用 ipvs 相关内核模块
[Service]
ExecStartPre=-/sbin/modprobe ip_vs
ExecStartPre=-/sbin/modprobe ip_vs_rr
@@ -269,8 +290,12 @@ $ sudo systemctl daemon-reload
### 部署
安装配置完成后我们将分别在 Master 节点和 Worker 节点上进行部署操作
#### master
运行以下命令
```bash
$ systemctl enable cri-containerd
@@ -317,7 +342,7 @@ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
#### node 工作节点
**另一主机** 重复 **部署** 小节以前的步骤安装配置好 kubelet根据提示加入到集群
**另一主机**重复**部署** 小节以前的步骤安装配置好 kubelet根据提示加入到集群
```bash
$ systemctl enable cri-containerd
@@ -374,6 +399,7 @@ CONTAINER_RUNTIME_ENDPOINT=/run/cri-containerd/cri-containerd.sock crictl ps -a
$ kubectl get node -o yaml | grep CIDR
## 输出
podCIDR: 10.244.0.0/16
podCIDRs:
```
@@ -390,7 +416,11 @@ $ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.26.1/
$ kubectl taint nodes --all node-role.kubernetes.io/master-
## 恢复默认值
## $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule
具体内容如下:
```
### 参考文档