mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 11:15:39 +00:00
Fix and update
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
## etcd
|
||||
# etcd
|
||||
|
||||
`etcd` 是 `CoreOS` 团队发起的一个管理配置信息和服务发现(`Service Discovery`)的项目,在这一章里面,我们将基于 `etcd 3.x` 版本介绍该项目的目标,安装和使用,以及实现的技术。
|
||||
|
||||
@@ -91,6 +91,8 @@ etcd 在键的组织上采用了层次化的空间结构(类似于文件系统
|
||||
|
||||
#### put
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ etcdctl put /testdir/testkey "Hello world"
|
||||
OK
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
## 安装
|
||||
|
||||
本节将介绍 etcd 的几种常见安装方式,包括二进制安装、Docker 镜像运行以及在 macOS 上的安装。
|
||||
|
||||
`etcd` 基于 `Go` 语言实现,因此,用户可以从 [项目主页](https://github.com/etcd-io/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。
|
||||
|
||||
>注意:本章节内容基于 etcd `3.4.x` 版本
|
||||
@@ -14,6 +16,7 @@
|
||||
$ curl -L https://github.com/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz
|
||||
|
||||
## 国内用户可以使用以下方式加快下载
|
||||
|
||||
$ curl -L https://download.fastgit.org/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz
|
||||
|
||||
$ tar xzvf etcd-v3.4.0-linux-amd64.tar.gz
|
||||
@@ -90,6 +93,8 @@ quay.io/coreos/etcd:v3.4.0 \
|
||||
|
||||
### macOS 中运行
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ brew install etcd
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
## 简介
|
||||
|
||||
简介 示意图如下:
|
||||
|
||||

|
||||
|
||||
`etcd` 是 `CoreOS` 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(`key-value`)数据库,基于 `Go` 语言实现。我们知道,在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。`CoreOS` 项目就希望基于 `etcd` 来解决这一问题。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## kubectl 使用
|
||||
# kubectl 使用
|
||||
|
||||
[kubectl](https://github.com/kubernetes/kubernetes) 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。
|
||||
|
||||
@@ -8,74 +8,74 @@ kubectl [flags]
|
||||
kubectl [command]
|
||||
```
|
||||
|
||||
### get
|
||||
## get
|
||||
|
||||
显示一个或多个资源
|
||||
|
||||
### describe
|
||||
## describe
|
||||
|
||||
显示资源详情
|
||||
|
||||
### create
|
||||
## create
|
||||
|
||||
从文件或标准输入创建资源
|
||||
|
||||
### update
|
||||
## update
|
||||
|
||||
从文件或标准输入更新资源
|
||||
|
||||
### delete
|
||||
## delete
|
||||
|
||||
通过文件名、标准输入、资源名或者 label selector 删除资源
|
||||
|
||||
### log
|
||||
## log
|
||||
|
||||
输出 pod 中一个容器的日志
|
||||
|
||||
### rolling-update
|
||||
## rolling-update
|
||||
|
||||
对指定的 replication controller 执行滚动升级
|
||||
|
||||
### exec
|
||||
## exec
|
||||
|
||||
在容器内部执行命令
|
||||
|
||||
### port-forward
|
||||
## port-forward
|
||||
|
||||
将本地端口转发到Pod
|
||||
|
||||
### proxy
|
||||
## proxy
|
||||
|
||||
为 Kubernetes API server 启动代理服务器
|
||||
|
||||
### run
|
||||
## run
|
||||
|
||||
在集群中使用指定镜像启动容器
|
||||
|
||||
### expose
|
||||
## expose
|
||||
|
||||
将 replication controller service 或 pod 暴露为新的 kubernetes service
|
||||
|
||||
### label
|
||||
## label
|
||||
|
||||
更新资源的 label
|
||||
|
||||
### config
|
||||
## config
|
||||
|
||||
修改 kubernetes 配置文件
|
||||
|
||||
### cluster-info
|
||||
## cluster-info
|
||||
|
||||
显示集群信息
|
||||
|
||||
### api-versions
|
||||
## api-versions
|
||||
|
||||
以 "组/版本" 的格式输出服务端支持的 API 版本
|
||||
|
||||
### version
|
||||
## version
|
||||
|
||||
输出服务端和客户端的版本信息
|
||||
|
||||
### help
|
||||
## help
|
||||
|
||||
显示各个命令的帮助信息
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Kubernetes
|
||||
# Kubernetes
|
||||
|
||||
`Kubernetes` 是 Google 团队发起并维护的基于 Docker 的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心。
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Service 虽然提供了负载均衡,但通常是 4 层(TCP/UDP)。**Ingres
|
||||
|
||||
常见的 Ingress Controller有 Nginx Ingress Controller, Traefik, Istio Gateway 等。
|
||||
|
||||
### Persistent Volume (PV) 与 StorageClass
|
||||
### Persistent Volume(PV) 与 StorageClass
|
||||
|
||||
容器内的文件是临时的。对于有状态应用(如数据库),需要持久化存储。
|
||||
|
||||
@@ -28,7 +28,7 @@ Service 虽然提供了负载均衡,但通常是 4 层(TCP/UDP)。**Ingres
|
||||
* **PV (Persistent Volume)**:实际的存储资源(NFS, AWS EBS, Ceph 等)。
|
||||
* **StorageClass**:定义存储类,支持动态创建 PV。
|
||||
|
||||
### Horizontal Pod Autoscaling (HPA)
|
||||
### Horizontal Pod Autoscaling(HPA)
|
||||
|
||||
HPA 根据 CPU 利用率或其他指标(如内存、自定义指标)自动扩缩 Deployment 或 ReplicaSet 中的 Pod 数量。
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
## 基本概念
|
||||
|
||||
基本概念 示意图如下:
|
||||
|
||||

|
||||
|
||||
* 节点(`Node`):一个节点是一个运行 Kubernetes 中的主机。
|
||||
@@ -73,6 +75,8 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接
|
||||
|
||||
#### 容器组设计的初衷
|
||||
|
||||
容器组(Pod)的设计主要是为了解决应用间的紧密协作和资源共享问题。
|
||||
|
||||
#### 资源共享和通信
|
||||
|
||||
容器组主要是为了数据共享和它们之间的通信。
|
||||
@@ -175,14 +179,35 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接
|
||||
|
||||
### Replication Controllers
|
||||
|
||||
> [!NOTE]
|
||||
> Replication Controller 保证指定数量的 Pod 副本在任何时候都处于运行状态。
|
||||
|
||||
### 服务
|
||||
|
||||
> [!NOTE]
|
||||
> 服务(Service)定义一组 Pod 的逻辑集合和访问它们的策略。
|
||||
|
||||
### 卷
|
||||
|
||||
> [!NOTE]
|
||||
> 卷(Volume)包含可被 Pod 中容器访问的数据的目录。
|
||||
|
||||
### 标签
|
||||
|
||||
> [!NOTE]
|
||||
> 标签(Label)是附加到对象(如 Pods)上的键值对,用于组织和选择对象子集。
|
||||
|
||||
### 接口权限
|
||||
|
||||
> [!NOTE]
|
||||
> 接口权限通过认证、授权和准入控制来保护 Kubernetes API 的访问。
|
||||
|
||||
### web界面
|
||||
|
||||
> [!NOTE]
|
||||
> Kubernetes Dashboard 是一个基于 Web 的用户界面,用于管理集群。
|
||||
|
||||
### 命令行操作
|
||||
|
||||
> [!NOTE]
|
||||
> kubectl 是 Kubernetes 的命令行工具,用于与集群进行交互。
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
### 控制平面
|
||||
|
||||
控制平面(Control Plane)是 Kubernetes 集群的大脑,负责做出全局决策(如调度)以及检测和响应集群事件。
|
||||
|
||||
#### 主节点服务
|
||||
|
||||
主节点上需要提供如下的管理服务:
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
## Kubernetes 简介
|
||||
|
||||
Kubernetes 简介 示意图如下:
|
||||
|
||||

|
||||
|
||||
### 什么是 Kubernetes
|
||||
@@ -28,19 +30,24 @@ Kubernetes 完美解决了这些问题。
|
||||
|
||||
### 核心概念
|
||||
|
||||
#### Pod (豆荚)
|
||||
#### Pod(豆荚)
|
||||
|
||||
Kubernetes 的最小调度单位。一个 Pod 可以包含一个或多个紧密协作的容器(共享网络和存储)。就像豌豆荚里的豌豆一样。
|
||||
|
||||
#### Node (节点)
|
||||
#### Node(节点)
|
||||
|
||||
运行 Pod 的物理机或虚拟机。
|
||||
|
||||
#### Deployment (部署)
|
||||
#### Deployment(部署)
|
||||
|
||||
定义应用的期望状态(如:需要 3 个副本,镜像版本为 v1)。K8s 会持续确保当前状态符合期望状态。
|
||||
|
||||
#### Service (服务)
|
||||
#### Service(服务)
|
||||
|
||||
定义一组 Pod 的访问策略。提供稳定的 Cluster IP 和 DNS 名称,负责负载均衡。
|
||||
|
||||
#### Namespace (命名空间)
|
||||
#### Namespace(命名空间)
|
||||
|
||||
用于多租户资源隔离。
|
||||
|
||||
---
|
||||
@@ -60,7 +67,7 @@ Kubernetes 的最小调度单位。一个 Pod 可以包含一个或多个紧密
|
||||
|
||||
### 架构
|
||||
|
||||
Kubernetes 也是 C/S 架构,由 **Master (控制平面)** 和 **Worker (工作节点)** 组成:
|
||||
Kubernetes 也是 C/S 架构,由 **Master (控制平面)**和**Worker (工作节点)** 组成:
|
||||
|
||||
- **Control Plane**:负责决策(API Server, Scheduler, Controller Manager, etcd)
|
||||
- **Worker Node**:负责干活(Kubelet, Kube-proxy, Container Runtime)
|
||||
|
||||
@@ -75,7 +75,7 @@ kubectl get svc nginx-service
|
||||
|
||||
如果输出端口是 `80:30080/TCP`,你可以通过 `http://<NodeIP>:30080` 访问 Nginx。
|
||||
|
||||
### 步骤 3:模拟滚动更新 (Rolling Update)
|
||||
### 步骤 3:模拟滚动更新(Rolling Update)
|
||||
|
||||
修改 `nginx-deployment.yaml`,将镜像版本改为 `nginx:latest`。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 部署 Kubernetes
|
||||
# 部署 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) 等)。
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
### 测试
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ kubectl version
|
||||
```
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
@@ -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 / Windows(WSL2)
|
||||
|
||||
可以下载二进制文件:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```
|
||||
|
||||
### 参考文档
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 使用 kubeadm 部署 kubernetes(CRI 使用 containerd)
|
||||
## 使用 kubeadm 部署 kubernetes(CRI 使用 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
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```
|
||||
|
||||
### 参考文档
|
||||
|
||||
Reference in New Issue
Block a user