Skip to content

Commit f68795f

Browse files
committed
Fix errors
1 parent acc74f1 commit f68795f

6 files changed

Lines changed: 120 additions & 42 deletions

File tree

03_install/3.1_ubuntu.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ $ echo \
8080

8181
## "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
8282

83-
## $(lsb_release -cs stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
83+
## $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
8484

8585

8686
```

03_install/3.2_debian.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ $ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --
5959

6060
然后,我们需要向 `sources.list` 中添加 Docker 软件源:
6161

62-
> 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kail Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)[BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.aliyun.com/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`
62+
> 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kali Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)[BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.aliyun.com/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`
6363
6464
```bash
6565
$ echo \
@@ -73,7 +73,7 @@ $ echo \
7373

7474
## "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
7575

76-
## $(lsb_release -cs stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
76+
## $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
7777

7878

7979
```

03_install/3.5_raspberry-pi.md

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,44 +31,42 @@ $ sudo apt-get install \
3131
apt-transport-https \
3232
ca-certificates \
3333
curl \
34-
gnupg2 \
35-
lsb-release \
36-
software-properties-common
34+
gnupg \
35+
lsb-release
3736
```
3837

3938
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
4039

4140
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
4241

4342
```bash
44-
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo apt-key add -
43+
$ sudo install -m 0755 -d /etc/apt/keyrings
44+
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
45+
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
4546

4647

4748
## 官方源
4849

49-
## $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -
50+
## $ sudo install -m 0755 -d /etc/apt/keyrings
51+
## $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
52+
## $ sudo chmod a+r /etc/apt/keyrings/docker.gpg
5053

5154

5255
```
5356

5457
然后,我们需要向 `sources.list` 中添加 Docker 软件源:
5558

5659
```bash
57-
$ sudo add-apt-repository \
58-
"deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian \
59-
$(lsb_release -cs) \
60-
stable"
60+
$ echo \
61+
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/raspbian \
62+
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
6163

6264

6365
## 官方源
6466

65-
## $ sudo add-apt-repository \
66-
67-
## "deb [arch=armhf] https://download.docker.com/linux/raspbian \
68-
69-
## $(lsb_release -cs) \
70-
71-
## stable"
67+
## $ echo \
68+
## "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian \
69+
## $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
7270

7371

7472
```
@@ -77,7 +75,7 @@ $ sudo add-apt-repository \
7775
7876
#### 报错解决办法
7977

80-
`Raspberry Pi OS Bullseye/Bookworm` 中,添加 Docker 软件源的步骤可能会出现如下报错:
78+
`Raspberry Pi OS Bullseye/Bookworm` 中,如果你使用 `add-apt-repository` 添加源,可能会出现如下报错(推荐改用上面的 `tee` 方式来写入 `/etc/apt/sources.list.d/docker.list`,可避免此问题):
8179

8280
```bash
8381
Traceback (most recent call last):
@@ -95,12 +93,12 @@ aptsources.distro.NoDistroTemplateException: Error: could not find a distributio
9593
通过以下命令手动添加镜像源到 `/etc/apt/sources.list` 文件中即可解决:
9694
9795
```bash
98-
$ sudo echo "deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
96+
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
9997

10098

10199
## 官方源
102100

103-
## $ sudo echo "deb [arch=armhf] https://download.docker.com/linux/raspbian $lsb_release -cs stable" | sudo tee -a /etc/apt/sources.list
101+
## $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
104102

105103

106104
```

10_compose/10.4_commands.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,12 @@ $ docker compose scale web=3 db=2
216216

217217
将启动 3 个容器运行 web 服务,2 个容器运行 db 服务。
218218

219+
> **提示**:部分版本的 Compose 可能不再提供独立的 `scale` 子命令(或不推荐使用)。此时可使用 `docker compose up``--scale` 选项达到同样效果:
220+
>
221+
> ```bash
222+
> $ docker compose up -d --scale web=3 --scale db=2
223+
> ```
224+
219225
一般的,当指定数目多于该服务当前实际运行容器,将新创建并启动容器;反之,将停止容器。
220226
221227
选项:

12_orchestration/setup/kubeadm-docker.md

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令作为快速创建 `kubernetes` 集群的最佳实践。
44

5+
> ⚠️ **重要说明**:自 Kubernetes 1.24 起,内置 `dockershim` 已被移除,Kubernetes 默认不再直接使用 Docker Engine 作为容器运行时(CRI)。因此,**更推荐参考**同目录下的《[使用 kubeadm 部署 kubernetes(CRI 使用 containerd)](kubeadm.md)》。
6+
>
7+
> 本文档主要用于历史环境/学习目的:如果你确实需要在较新版本中继续使用 Docker Engine,通常需要额外部署 `cri-dockerd` 并在 `kubeadm init/join` 中指定 `--cri-socket`
8+
59
### 安装 Docker
610

711
参考 [安装 Docker](../../03_install/README.md) 一节安装 Docker。
@@ -15,37 +19,69 @@
1519
运行以下命令:
1620

1721
```bash
18-
$ apt-get update && apt-get install -y apt-transport-https
19-
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
22+
$ K8S_MINOR="v1.35"
2023

21-
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
22-
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
23-
EOF
24+
$ sudo apt-get update
25+
$ sudo apt-get install -y ca-certificates curl gpg
26+
27+
$ sudo install -m 0755 -d /etc/apt/keyrings
28+
$ curl -fsSL "https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/deb/Release.key" | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
29+
$ sudo chmod a+r /etc/apt/keyrings/kubernetes-apt-keyring.gpg
2430

25-
$ apt-get update
26-
$ apt-get install -y kubelet kubeadm kubectl
31+
$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
32+
33+
$ sudo apt-get update
34+
$ sudo apt-get install -y kubelet kubeadm kubectl
35+
36+
$ sudo apt-mark hold kubelet kubeadm kubectl
2737
```
2838

2939
#### CentOS/Fedora
3040

3141
运行以下命令:
3242

3343
```bash
44+
$ K8S_MINOR="v1.35"
45+
3446
$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
3547
[kubernetes]
3648
name=Kubernetes
37-
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
49+
baseurl=https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/rpm/
3850
enabled=1
3951
gpgcheck=1
4052
repo_gpgcheck=1
41-
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
53+
gpgkey=https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/rpm/repodata/repomd.xml.key
4254
EOF
4355

4456
$ sudo yum install -y kubelet kubeadm kubectl
4557
```
4658

4759
### 修改内核的运行参数
4860

61+
#### 加载内核模块
62+
63+
运行以下命令:
64+
65+
```bash
66+
$ cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
67+
overlay
68+
br_netfilter
69+
EOF
70+
71+
$ sudo modprobe overlay
72+
$ sudo modprobe br_netfilter
73+
```
74+
75+
#### 禁用 swap(必须)
76+
77+
kubelet 默认要求禁用 swap,否则可能导致初始化失败或节点无法加入集群。
78+
79+
```bash
80+
$ sudo swapoff -a
81+
82+
## 如需永久禁用,可在 /etc/fstab 中注释 swap 对应行
83+
```
84+
4985
运行以下命令:
5086

5187
```bash
@@ -185,7 +221,7 @@ $ kubectl get node -o yaml | grep CIDR
185221
```
186222

187223
```bash
188-
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Documentation/kube-flannel.yml
224+
$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.26.1/Documentation/kube-flannel.yml
189225
```
190226

191227
### master 节点默认不能运行 pod
@@ -195,6 +231,9 @@ $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Docu
195231
```bash
196232
$ kubectl taint nodes --all node-role.kubernetes.io/master-
197233

234+
## 部分较新版本使用 control-plane taint
235+
## $ kubectl taint nodes --all node-role.kubernetes.io/control-plane-
236+
198237
## 恢复默认值
199238

200239
## $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule

12_orchestration/setup/kubeadm.md

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -219,37 +219,69 @@ oom_score = 0
219219
运行以下命令:
220220

221221
```bash
222-
$ apt-get update && apt-get install -y apt-transport-https
223-
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
222+
$ K8S_MINOR="v1.35"
224223

225-
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
226-
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
227-
EOF
224+
$ sudo apt-get update
225+
$ sudo apt-get install -y ca-certificates curl gpg
226+
227+
$ sudo install -m 0755 -d /etc/apt/keyrings
228+
$ curl -fsSL "https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/deb/Release.key" | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
229+
$ sudo chmod a+r /etc/apt/keyrings/kubernetes-apt-keyring.gpg
230+
231+
$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
228232

229-
$ apt-get update
230-
$ apt-get install -y kubelet kubeadm kubectl
233+
$ sudo apt-get update
234+
$ sudo apt-get install -y kubelet kubeadm kubectl cri-tools kubernetes-cni
235+
236+
$ sudo apt-mark hold kubelet kubeadm kubectl
231237
```
232238

233239
#### CentOS/Fedora
234240

235241
运行以下命令:
236242

237243
```bash
244+
$ K8S_MINOR="v1.35"
245+
238246
$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
239247
[kubernetes]
240248
name=Kubernetes
241-
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
249+
baseurl=https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/rpm/
242250
enabled=1
243251
gpgcheck=1
244252
repo_gpgcheck=1
245-
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
253+
gpgkey=https://pkgs.k8s.io/core:/stable:/${K8S_MINOR}/rpm/repodata/repomd.xml.key
246254
EOF
247255

248-
$ sudo yum install -y kubelet kubeadm kubectl
256+
$ sudo yum install -y kubelet kubeadm kubectl cri-tools kubernetes-cni
249257
```
250258

251259
### 修改内核的运行参数
252260

261+
#### 加载内核模块
262+
263+
运行以下命令:
264+
265+
```bash
266+
$ cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
267+
overlay
268+
br_netfilter
269+
EOF
270+
271+
$ sudo modprobe overlay
272+
$ sudo modprobe br_netfilter
273+
```
274+
275+
#### 禁用 swap(必须)
276+
277+
kubelet 默认要求禁用 swap,否则可能导致初始化失败或节点无法加入集群。
278+
279+
```bash
280+
$ sudo swapoff -a
281+
282+
## 如需永久禁用,可在 /etc/fstab 中注释 swap 对应行
283+
```
284+
253285
运行以下命令:
254286

255287
```bash
@@ -415,6 +447,9 @@ $ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.26.1/
415447
```bash
416448
$ kubectl taint nodes --all node-role.kubernetes.io/master-
417449

450+
## 部分较新版本使用 control-plane taint
451+
## $ kubectl taint nodes --all node-role.kubernetes.io/control-plane-
452+
418453
## 恢复默认值
419454

420455
## $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule

0 commit comments

Comments
 (0)