mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
Remove blank lines after code block markers
This commit is contained in:
@@ -9,7 +9,6 @@
|
||||
参考[安装 Docker](../03_install/README.md) 一节添加 apt/yum 源,之后执行如下命令。
|
||||
|
||||
```bash
|
||||
|
||||
## debian 系
|
||||
|
||||
$ sudo apt install containerd.io
|
||||
@@ -18,7 +17,6 @@ $ sudo apt install containerd.io
|
||||
|
||||
$ sudo yum install containerd.io
|
||||
```
|
||||
|
||||
### 14.1.2 配置 containerd
|
||||
|
||||
新建 `/etc/systemd/system/cri-containerd.service` 文件
|
||||
@@ -57,7 +55,6 @@ OOMScoreAdjust=-999
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
新建 `/etc/cri-containerd/config.toml` containerd 配置文件
|
||||
|
||||
```toml
|
||||
@@ -233,7 +230,6 @@ oom_score = 0
|
||||
base_image_size = ""
|
||||
async_remove = false
|
||||
```
|
||||
|
||||
### 14.1.3 安装 **kubelet**、**kubeadm**、**kubectl**、**cri-tools**、**kubernetes-cni**
|
||||
|
||||
需要在每台机器上安装以下的软件包:
|
||||
@@ -257,7 +253,6 @@ $ sudo apt-get install -y kubelet kubeadm kubectl cri-tools kubernetes-cni
|
||||
|
||||
$ sudo apt-mark hold kubelet kubeadm kubectl
|
||||
```
|
||||
|
||||
#### CentOS/Fedora
|
||||
|
||||
```bash
|
||||
@@ -275,7 +270,6 @@ EOF
|
||||
|
||||
$ sudo yum install -y kubelet kubeadm kubectl cri-tools kubernetes-cni
|
||||
```
|
||||
|
||||
### 14.1.4 修改内核的运行参数
|
||||
|
||||
#### 加载内核模块
|
||||
@@ -289,7 +283,6 @@ EOF
|
||||
$ sudo modprobe overlay
|
||||
$ sudo modprobe br_netfilter
|
||||
```
|
||||
|
||||
#### 禁用 swap:必须
|
||||
|
||||
kubelet 默认要求禁用 swap,否则可能导致初始化失败或节点无法加入集群。
|
||||
@@ -299,7 +292,6 @@ $ sudo swapoff -a
|
||||
|
||||
## 如需永久禁用,可在 /etc/fstab 中注释 swap 对应行
|
||||
```
|
||||
|
||||
```bash
|
||||
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
@@ -311,7 +303,6 @@ EOF
|
||||
|
||||
$ sysctl --system
|
||||
```
|
||||
|
||||
### 14.1.5 配置 kubelet
|
||||
|
||||
为了让 kubelet 正确运行,我们需要对其进行一些必要的配置。
|
||||
@@ -321,7 +312,6 @@ $ sysctl --system
|
||||
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
|
||||
|
||||
```bash
|
||||
|
||||
## 启用 ipvs 相关内核模块
|
||||
|
||||
[Service]
|
||||
@@ -330,13 +320,11 @@ ExecStartPre=-/sbin/modprobe ip_vs_rr
|
||||
ExecStartPre=-/sbin/modprobe ip_vs_wrr
|
||||
ExecStartPre=-/sbin/modprobe ip_vs_sh
|
||||
```
|
||||
|
||||
执行以下命令应用配置。
|
||||
|
||||
```bash
|
||||
$ sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
### 14.1.6 部署
|
||||
|
||||
安装配置完成后,我们将分别在 Master 节点和 Worker 节点上进行部署操作。
|
||||
@@ -355,7 +343,6 @@ $ sudo kubeadm init \
|
||||
--v 5 \
|
||||
--ignore-preflight-errors=all
|
||||
```
|
||||
|
||||
* `--pod-network-cidr 10.244.0.0/16` 参数与后续 CNI 插件有关,这里以 `flannel` 为例,若后续部署其他类型的网络插件请更改此参数。
|
||||
|
||||
> 执行可能出现错误,例如缺少依赖包,根据提示安装即可。
|
||||
@@ -386,7 +373,6 @@ Then you can join any number of worker nodes by running the following on each as
|
||||
kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
--discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe
|
||||
```
|
||||
|
||||
#### node 工作节点
|
||||
|
||||
在 **另一主机** 重复 **部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。
|
||||
@@ -401,7 +387,6 @@ $ kubeadm join 192.168.199.100:6443 \
|
||||
--discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe \
|
||||
--cri-socket /run/cri-containerd/cri-containerd.sock
|
||||
```
|
||||
|
||||
### 14.1.7 查看服务
|
||||
|
||||
所有服务启动后,通过 `crictl` 查看本地实际运行的容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。
|
||||
@@ -409,7 +394,6 @@ $ kubeadm join 192.168.199.100:6443 \
|
||||
```bash
|
||||
CONTAINER_RUNTIME_ENDPOINT=/run/cri-containerd/cri-containerd.sock crictl ps -a
|
||||
```
|
||||
|
||||
#### 主节点服务
|
||||
|
||||
* `apiserver` 是整个系统的对外接口,提供 RESTful 方式供客户端和其它组件调用;
|
||||
@@ -450,11 +434,9 @@ $ kubectl get node -o yaml | grep CIDR
|
||||
podCIDR: 10.244.0.0/16
|
||||
podCIDRs:
|
||||
```
|
||||
|
||||
```bash
|
||||
$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.28.1/Documentation/kube-flannel.yml
|
||||
```
|
||||
|
||||
### 14.1.10 master 节点默认不能运行 pod
|
||||
|
||||
如果用 `kubeadm` 部署一个单节点集群,默认情况下无法使用,请执行以下命令解除限制
|
||||
@@ -472,7 +454,6 @@ $ kubectl taint nodes --all node-role.kubernetes.io/master-
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
### 14.1.11 参考文档
|
||||
|
||||
* [官方文档](https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#### Ubuntu/Debian
|
||||
|
||||
```bash
|
||||
|
||||
## 安装 cri-dockerd
|
||||
|
||||
$ cd /tmp
|
||||
@@ -45,11 +44,9 @@ $ sudo systemctl start cri-docker
|
||||
|
||||
$ sudo /usr/local/bin/cri-dockerd --version
|
||||
```
|
||||
|
||||
#### CentOS/Fedora
|
||||
|
||||
```bash
|
||||
|
||||
## 安装 cri-dockerd
|
||||
|
||||
$ cd /tmp
|
||||
@@ -69,7 +66,6 @@ $ sudo systemctl daemon-reload
|
||||
$ sudo systemctl enable cri-docker
|
||||
$ sudo systemctl start cri-docker
|
||||
```
|
||||
|
||||
### 14.2.3 安装 **kubelet**、**kubeadm**、**kubectl**
|
||||
|
||||
需要在每台机器上安装以下的软件包:
|
||||
@@ -93,7 +89,6 @@ $ sudo apt-get install -y kubelet kubeadm kubectl
|
||||
|
||||
$ sudo apt-mark hold kubelet kubeadm kubectl
|
||||
```
|
||||
|
||||
#### CentOS/Fedora
|
||||
|
||||
```bash
|
||||
@@ -111,7 +106,6 @@ EOF
|
||||
|
||||
$ sudo yum install -y kubelet kubeadm kubectl
|
||||
```
|
||||
|
||||
### 14.2.4 修改内核的运行参数
|
||||
|
||||
#### 加载内核模块
|
||||
@@ -125,7 +119,6 @@ EOF
|
||||
$ sudo modprobe overlay
|
||||
$ sudo modprobe br_netfilter
|
||||
```
|
||||
|
||||
#### 禁用 swap:必须
|
||||
|
||||
kubelet 默认要求禁用 swap,否则可能导致初始化失败或节点无法加入集群。
|
||||
@@ -135,7 +128,6 @@ $ sudo swapoff -a
|
||||
|
||||
## 如需永久禁用,可在 /etc/fstab 中注释 swap 对应行
|
||||
```
|
||||
|
||||
```bash
|
||||
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
@@ -147,7 +139,6 @@ EOF
|
||||
|
||||
$ sysctl --system
|
||||
```
|
||||
|
||||
### 14.2.5 配置 kubelet
|
||||
|
||||
为了让 kubelet 正确运行,我们需要对其进行一些必要的配置。
|
||||
@@ -157,7 +148,6 @@ $ sysctl --system
|
||||
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
|
||||
|
||||
```bash
|
||||
|
||||
## 启用 ipvs 相关内核模块
|
||||
|
||||
[Service]
|
||||
@@ -166,13 +156,11 @@ ExecStartPre=-/sbin/modprobe ip_vs_rr
|
||||
ExecStartPre=-/sbin/modprobe ip_vs_wrr
|
||||
ExecStartPre=-/sbin/modprobe ip_vs_sh
|
||||
```
|
||||
|
||||
执行以下命令应用配置。
|
||||
|
||||
```bash
|
||||
$ sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
### 14.2.6 部署
|
||||
|
||||
安装配置完成后,我们将分别在 Master 节点和 Worker 节点上进行部署操作。
|
||||
@@ -186,7 +174,6 @@ $ sudo kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_
|
||||
--v 5 \
|
||||
--ignore-preflight-errors=all
|
||||
```
|
||||
|
||||
* `--cri-socket unix:///var/run/cri-dockerd.sock` 参数指定使用 cri-dockerd 作为容器运行时接口。
|
||||
* `--pod-network-cidr 10.244.0.0/16` 参数与后续 CNI 插件有关,这里以 `flannel` 为例,若后续部署其他类型的网络插件请更改此参数。
|
||||
|
||||
@@ -218,7 +205,6 @@ Then you can join any number of worker nodes by running the following on each as
|
||||
kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
--discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe
|
||||
```
|
||||
|
||||
#### node 工作节点
|
||||
|
||||
在 **另一主机** 重复 **部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。
|
||||
@@ -227,7 +213,6 @@ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
$ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \
|
||||
--discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe
|
||||
```
|
||||
|
||||
### 14.2.7 查看服务
|
||||
|
||||
所有服务启动后,查看本地实际运行的 Docker 容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。
|
||||
@@ -272,11 +257,9 @@ $ kubectl get node -o yaml | grep CIDR
|
||||
podCIDR: 10.244.0.0/16
|
||||
podCIDRs:
|
||||
```
|
||||
|
||||
```bash
|
||||
$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.28.1/Documentation/kube-flannel.yml
|
||||
```
|
||||
|
||||
### 14.2.10 master 节点默认不能运行 pod
|
||||
|
||||
如果用 `kubeadm` 部署一个单节点集群,默认情况下无法使用,请执行以下命令解除限制
|
||||
@@ -294,7 +277,6 @@ $ kubectl taint nodes --all node-role.kubernetes.io/master-
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
### 14.2.11 参考文档
|
||||
|
||||
* [官方文档](https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)
|
||||
|
||||
@@ -15,5 +15,4 @@
|
||||
```bash
|
||||
$ kubectl version
|
||||
```
|
||||
|
||||
如果正常输出信息,则证明 Kubernetes 成功启动。
|
||||
|
||||
@@ -20,20 +20,17 @@ Kind 是一个二进制文件,并在 PATH 中即可使用。以下是不同系
|
||||
```bash
|
||||
brew install kind
|
||||
```
|
||||
|
||||
#### Linux / Windows
|
||||
|
||||
可以下载二进制文件:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
### 14.4.3 创建集群
|
||||
|
||||
最简单的创建方式:
|
||||
@@ -41,13 +38,11 @@ sudo mv ./kind /usr/local/bin/kind
|
||||
```bash
|
||||
kind create cluster
|
||||
```
|
||||
|
||||
指定集群名称:
|
||||
|
||||
```bash
|
||||
kind create cluster --name my-cluster
|
||||
```
|
||||
|
||||
### 14.4.4 与集群交互
|
||||
|
||||
Kind 会自动将 kubeconfig 合并到 `~/.kube/config`。
|
||||
@@ -56,7 +51,6 @@ Kind 会自动将 kubeconfig 合并到 `~/.kube/config`。
|
||||
kubectl cluster-info --context kind-kind
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
### 14.4.5 高级用法:配置集群
|
||||
|
||||
创建一个 `kind-config.yaml` 来定制集群,例如映射端口到宿主机:
|
||||
@@ -73,13 +67,11 @@ nodes:
|
||||
- role: worker
|
||||
- role: worker
|
||||
```
|
||||
|
||||
应用配置:
|
||||
|
||||
```bash
|
||||
kind create cluster --config kind-config.yaml
|
||||
```
|
||||
|
||||
### 14.4.6 删除集群
|
||||
|
||||
```bash
|
||||
|
||||
@@ -20,7 +20,6 @@ K3s 提供了极为便捷的安装脚本:
|
||||
```bash
|
||||
curl -sfL https://get.k3s.io | sh -
|
||||
```
|
||||
|
||||
安装完成后,K3s 会自动启动并配置好 `systemd` 服务。
|
||||
|
||||
#### 查看状态
|
||||
@@ -28,19 +27,16 @@ curl -sfL https://get.k3s.io | sh -
|
||||
```bash
|
||||
sudo k3s kubectl get nodes
|
||||
```
|
||||
|
||||
输出类似:
|
||||
```bash
|
||||
NAME STATUS ROLES AGE VERSION
|
||||
k3s-master Ready control-plane,master 1m v1.35.1+k3s1
|
||||
```
|
||||
|
||||
### 14.5.3 快速使用
|
||||
|
||||
K3s 内置了 `kubectl` 命令 (通过 `k3s kubectl` 调用),为了方便,通常会建立别名或配置 `KUBECONFIG`。
|
||||
|
||||
```bash
|
||||
|
||||
## 读取 K3s 的配置文件
|
||||
|
||||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||||
@@ -49,7 +45,6 @@ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||||
|
||||
kubectl get pods -A
|
||||
```
|
||||
|
||||
### 14.5.4 清理卸载
|
||||
|
||||
```bash
|
||||
|
||||
@@ -30,11 +30,9 @@
|
||||
/etc/systemd/system/kube-proxy.service
|
||||
/etc/systemd/system/kube-apiserver.service
|
||||
```
|
||||
|
||||
#### 常用命令
|
||||
|
||||
```bash
|
||||
|
||||
# 启动服务
|
||||
sudo systemctl start kubelet
|
||||
|
||||
@@ -50,7 +48,6 @@ sudo systemctl status kubelet
|
||||
# 设置开机自启
|
||||
sudo systemctl enable kubelet
|
||||
```
|
||||
|
||||
### 参考资源
|
||||
|
||||
详细的部署步骤和配置说明,可以参考以下项目:
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
|
||||
```
|
||||
|
||||
### 14.7.2 访问
|
||||
|
||||
通过命令行代理访问,执行以下命令:
|
||||
@@ -19,7 +18,6 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/a
|
||||
```bash
|
||||
$ kubectl proxy
|
||||
```
|
||||
|
||||
到 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 即可访问。
|
||||
|
||||
### 14.7.3 登录
|
||||
@@ -37,7 +35,6 @@ $ DASHBOARD_LOGIN_TOKEN=$(kubectl describe secret -n kube-system ${ADMIN_SECRET}
|
||||
|
||||
echo ${DASHBOARD_LOGIN_TOKEN}
|
||||
```
|
||||
|
||||
将结果粘贴到登录页面,即可登录。
|
||||
|
||||
### 14.7.4 参考文档
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
kubectl [flags]
|
||||
kubectl [command]
|
||||
```
|
||||
|
||||
### 14.8.1 get
|
||||
|
||||
显示一个或多个资源
|
||||
|
||||
Reference in New Issue
Block a user