diff --git a/docs/zh/docs/1.py b/docs/zh/docs/1.py new file mode 100644 index 0000000000000000000000000000000000000000..fd33531887eddded2760e7f054b3c3694d04c699 --- /dev/null +++ b/docs/zh/docs/1.py @@ -0,0 +1,60 @@ +import os +import re +from bs4 import BeautifulSoup + + +def fix_unclosed_tags(markdown_content): + """ + 修复Markdown内容中未闭合的HTML标签 + """ + # 使用正则表达式提取HTML片段 + html_fragments = re.findall(r'<[^>]+>', markdown_content) + + # 将HTML片段组合成一个完整的HTML文档 + html_content = '
' + ''.join(html_fragments) + '' + + # 使用BeautifulSoup解析HTML + soup = BeautifulSoup(html_content, 'html5lib') + + # 获取修复后的HTML内容 + fixed_html = str(soup.body) + + # 去除多余的和标签 + fixed_html = fixed_html.replace('', '').replace('', '') + + # 将修复后的HTML替换回Markdown内容 + for original, fixed in zip(html_fragments, re.findall(r'<[^>]+>', fixed_html)): + markdown_content = markdown_content.replace(original, fixed) + + return markdown_content + + +def process_markdown_file(file_path): + """ + 处理单个Markdown文件 + """ + with open(file_path, 'r', encoding='utf-8') as file: + content = file.read() + + fixed_content = fix_unclosed_tags(content) + + with open(file_path, 'w', encoding='utf-8') as file: + file.write(fixed_content) + print(f"已修复文件: {file_path}") + + +def find_and_fix_markdown_files(root_dir): + """ + 递归查找并修复所有Markdown文件 + """ + for dirpath, _, filenames in os.walk(root_dir): + for filename in filenames: + if filename.endswith('.md'): + file_path = os.path.join(dirpath, filename) + process_markdown_file(file_path) + + +if __name__ == "__main__": + root_directory = r'/Users/liujingrong/Desktop/docs/docs/zh/docs/1newStruct/Server/Network' # 替换为你的Markdown文件根目录 + find_and_fix_markdown_files(root_directory) + print("所有Markdown文件已修复完成!") \ No newline at end of file diff --git a/docs/zh/docs/ClusterDeployment/Kubernetes/Kubernetes.md b/docs/zh/docs/ClusterDeployment/Kubernetes/Kubernetes.md new file mode 100644 index 0000000000000000000000000000000000000000..c0af759cb21ee5fdae603a3d1e014f82addb4f7b --- /dev/null +++ b/docs/zh/docs/ClusterDeployment/Kubernetes/Kubernetes.md @@ -0,0 +1,12 @@ +# Kubernetes 集群部署指南 + +本文档介绍在 openEuler 操作系统上,通过二进制部署 K8S 集群的一个参考方法。 + +说明:本文所有操作均使用 `root`权限执行。 + +## 集群状态 + +本文所使用的集群状态如下: + +- 集群结构:6 个 `openEuler 21.09`系统的虚拟机,3 个 master 和 3 个 node 节点 +- 物理机:`openEuler 21.09`的 `x86/ARM`服务器 diff --git "a/docs/zh/docs/ClusterDeployment/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\2271.md" "b/docs/zh/docs/ClusterDeployment/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\2271.md" new file mode 100644 index 0000000000000000000000000000000000000000..ac603e15c59002ed7aa301f65fc7bd8f0c004735 --- /dev/null +++ "b/docs/zh/docs/ClusterDeployment/Kubernetes/Kubernetes\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\2271.md" @@ -0,0 +1,306 @@ +# Kubernetes集群部署指南 - containerd + +Kubernetes自1.21版本开始不再支持Kubernetes+docker部署Kubernetes集群,本文介绍以containerd作为容器运行时快速搭建Kubernetes集群。若需要对集群进行个性化配置,请查阅[官方文档](https://kubernetes.io/zh-cn/docs/home/) 。 + +## 软件包安装 + +### 1. 安装必要软件包 + +```bash +$ yum install -y containerd +$ yum install -y kubernetes* +$ yum install -y cri-tools +``` + +> **说明** +> +> - 如果系统中已经安装了Docker,请确保在安装containerd之前卸载Docker,否则可能会引发冲突。 + +要求使用1.6.22-15或更高版本的containerd,如果下载的版本过低请运行以下命令升级成1.6.22-15版本,或自行升级。 + +```bash +$ wget --no-check-certificate https://repo.openeuler.org/openEuler-24.03-LTS/update/x86_64/Packages/containerd-1.6.22-15.oe2403.x86_64.rpm +$ rpm -Uvh containerd-1.6.22-15.oe2403.x86_64.rpm +``` + +本教程中通过yum下载的软件包版本如下所示: + +```bash +1. containerd + -架构:x86_64 + -版本:1.6.22-15 +2. kubernetes - client/help/kubeadm/kubelet/master/node + -架构:x86_64 + -版本:1.29.1-4 +3. cri-tools + -架构:X86_64 + -版本:1.29.0-3 +``` + +### 2. 下载cni组件 + +```bash +$ mkdir -p /opt/cni/bin +$ cd /opt/cni/bin +$ wget --no-check-certificate https://github.com/containernetworking/plugins/releases/download/v1.5.1/cni-plugins-linux-amd64-v1.5.1.tgz +$ tar -xzvf ./cni-plugins-linux-amd64-v1.5.1.tgz -C . +``` + +> **说明** +> +> - 这里提供的是AMD64架构版本的下载链接,请根据系统架构选择合适的版本,其他版本可从[github仓库](https://github.com/containernetworking/plugins/releases/)获取。 + +### 3. 下载CNI插件(Flannel) + +```bash +$ wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml --no-check-certificate +``` + +## 环境配置 + +本节对Kubernetes运行时所需的操作系统环境进行配置。 + +### 1. 设置主机名 + +```bash +$ hostnamectl set-hostname nodeName +``` + +### 2. 配置防火墙 + +**方法一:** + +配置防火墙规则以开放etcd和API Server的端口,确保控制平面和工作节点之间的正常通信。 +开放etcd的端口: + +```bash +$ firewall-cmd --zone=public --add-port=2379/tcp --permanent +$ firewall-cmd --zone=public --add-port=2380/tcp --permanent +``` + +开放API Server的端口: + +```bash +$ firewall-cmd --zone=public --add-port=6443/tcp --permanent +``` + +使防火墙规则生效: + +```bash +$ firewall-cmd --reload +``` + +> **说明** +> +> - 防火墙配置可能会导致某些容器镜像无法正常使用。为了确保其顺利运行,需要根据所使用的镜像开放相应的端口。 + +**方法二:** + +使用以下命令禁用防火墙: + +```bash +$ systemctl stop firewalld +$ systemctl disable firewalld +``` + +### 3. 禁用SELinux + +SELinux的安全策略可能会阻止容器内的某些操作,比如写入特定目录、访问网络资源、或执行具有特权的操作。这会导致 CoreDNS 等关键服务无法正常运行,并表现为CrashLoopBackOff或 Error状态。可以使用以下命令来禁用SELinux: + +```bash +$ setenforce 0 +$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config +``` + +### 4. 禁用swap + +Kubernetes的资源调度器根据节点的可用内存和CPU资源来决定将哪些Pod分配到哪些节点上。如果节点上启用了swap,实际可用的物理内存和逻辑上可用的内存可能不一致,这会影响调度器的决策,导致某些节点出现过载,或者在某些情况下调度错误。因此需要禁用swap: + +```bash +$ swapoff -a +$ sed -ri 's/.*swap.*/#&/' /etc/fstab +``` + +### 5. 网络配置 + +启用桥接网络上的IPv6和IPv4流量通过iptables进行过滤,并启动IP转发,运行内核转发IPv4包,确保跨界点的Pod间通信: + +```bash +$ cat > /etc/sysctl.d/k8s.conf << EOF +net.bridge.bridge-nf-call-ip6tables = 1 +net.bridge.bridge-nf-call-iptables = 1 +net.ipv4.ip_forward = 1 +vm.swappiness=0 +EOF +$ modprobe br_netfilter +$ sysctl -p /etc/sysctl.d/k8s.conf +``` + +## 配置containerd + +本节对containerd进行配置,包括设置pause_image、cgroup驱动、关闭"registry.k8s.io"镜像源证书验证、配置代理。 + +首先,生成containerd的默认配置文件并将其输出到containerd_conf指定的文件: + +```bash +$ containerd_conf="/etc/containerd/config.toml" +$ mkdir -p /etc/containerd +$ containerd config default > "${containerd_conf}" +``` + +配置pause_image: + +```bash +$ pause_img=$(kubeadm config images list | grep pause | tail -1) +$ sed -i "/sandbox_image/s#\".*\"#\"${pause_img}\"#" "${containerd_conf}" +``` + +将cgroup驱动指定为systemd: + +```bash +$ sed -i "/SystemdCgroup/s/=.*/= true/" "${containerd_conf}" +``` + +关闭"registry.k8s.io"镜像源证书验证: + +```bash +$ sed -i '/plugins."io.containerd.grpc.v1.cri".registry.configs/a\[plugins."io.containerd.grpc.v1.cri".registry.configs."registry.k8s.io".tls]\n insecure_skip_verify = true' /etc/containerd/config.toml +``` + +配置代理(将HTTP_PROXY、HTTPS_PROXY、NO_PROXY中的"***"替换为自己的代理信息): + +```bash +$ server_path="/etc/systemd/system/containerd.service.d" +$ mkdir -p "${server_path}" +$ cat > "${server_path}"/http-proxy.conf << EOF +[Service] +Environment="HTTP_PROXY=***" +Environment="HTTPS_PROXY=***" +Environment="NO_PROXY=***" +EOF +``` + +重启containerd,使得以上配置生效: + +```bash +$ systemctl daemon-reload +$ systemctl restart containerd +``` + +## 配置crictl使用containerd作为容器运行时 + +```bash +$ crictl config runtime-endpoint unix:///run/containerd/containerd.sock +$ crictl config image-endpoint unix:///run/containerd/containerd.sock +``` + +## 配置kubelet使用systemd作为cgroup驱动 + +```bash +$ systemctl enable kubelet.service +$ echo 'KUBELET_EXTRA_ARGS="--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice"' >> /etc/sysconfig/kubelet +$ systemctl restart kubelet +``` + +## 使用Kubeadm创建集群(仅控制平面需要) + +### 1. 配置集群信息 + +```bash +$ kubeadm config print init-defaults --component-configs KubeletConfiguration >> kubeletConfig.yaml +$ vim kubeletConfig.yaml +``` + +在kubeletConfig.yaml文件中,配置节点名称、广播地址(advertiseAddress)以及Pod网络的CIDR。 + +**修改name为主机名,与环境配置[第一步](#1-设置主机名)一致:** + + + +**将advertiseAddress修改为控制平面的ip地址:** + + + +**在Networking中添加podSubnet指定CIDR范围:** + + + +### 2. 部署集群 + +这里使用kubeadm部署集群,许多配置是默认生成的(如认证证书),如需修改请查阅[官方文档](https://kubernetes.io/zh-cn/docs/home/ )。 + +**关闭代理(如有):** + +```bash +$ unset http_proxy https_proxy +``` + +使用kubeadm init部署集群: + +```bash +$ kubeadm init --config kubeletConfig.yaml +``` + +指定kubectl使用的配置文件: + +```bash +$ mkdir -p "$HOME"/.kube +$ cp -i /etc/kubernetes/admin.conf "$HOME"/.kube/config +$ chown "$(id -u)":"$(id -g)" "$HOME"/.kube/config +$ export KUBECONFIG=/etc/kubernetes/admin.conf +``` + +### 3. 部署cni插件(flannel) + +本教程中使用flannel作为cni插件,以下介绍flannel下载和部署。 +以下使用的flannel从registry-1.docker.io镜像源下载,为避免证书验证失败的问题,请在containerd配置文件(/etc/containerd/config.toml)中配置该镜像源跳过证书验证。 + + + +使用kubectl apply部署最开始在软件包安装中下载的kube-flannel.yml。 + +```bash +$ kubectl apply -f kube-flannel.yml +``` + +> **说明** +> +> 控制平面可能会有污点的问题,导致kubectl get nodes中节点状态无法变成ready,请查阅[官方文档](https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/)去除污点。 +> +## 加入集群(仅工作节点需要) + +**关闭代理(如有):** + +```bash +$ unset http_proxy https_proxy +``` + +工作节点安装配置完环境后可以通过以下命令加入集群。 + +```bash +$ kubeadm join+ | ++ | +
---|---|
+ | +开放远程API调用的 CORS 头信息。这个接口开关对想进行二次开发的上层应用提供了支持。为remote API设置CORS头信息。 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ + | +
+ | ++ | +
+ | ++ + | +
+ | +
+
+# 启动的容器umask值为0022 --exec-opt native.umask=normal # 启动的容器umask值为0027(缺省值)--exec-opt native.umask=secure+ 注意如果docker create/run也配置了native.umask参数则以docker create/run中的配置为准。 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +在后台运行模式下,赋予指定的Group到相应的unix socket上。注意,当此参数 --group 赋予空字符串时,将去除组信息。 + |
+
+ | ++ | +
+ | +在后台模式下指定socket绑定,可以绑定一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。例如: + + + + |
+
+ | +指定非安全连接的仓库,docker默认所有的连接都是TLS证书来保证安全的,如果仓库不支持https连接或者证书是docker daemon不清楚的证书颁发机构颁发的,则启动daemon的时候要指定如--insecure-registry=192.168.1.110:5000,使用私有仓库都要指定。 + |
+
+ | +开启镜像层完整性检查功能,设置为true;关闭该功能,设置为false。如果没有该参数,默认为关闭。 +docker启动时会检查镜像层的完整性,如果镜像层被破坏,则相关的镜像不可用。docker进行镜像完整性校验时,无法校验内容为空的文件和目录,以及链接文件。因此若镜像因掉电导致上述类型文件丢失,docker的镜像数据完整性校验可能无法识别。docker版本变更时需要检查是否支持该参数,如果不支持,需要从配置文件中删除。 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +设置容器网络的MTU值,如果没有这个参数,选用默认 route MTU,如果没有默认route,就设置成常量值 1500。 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +配置存储驱动的参数,存储驱动为devicemapper的时候有效(e.g. dockerd --storage-opt dm.blocksize=512K)。 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ + | +
+ | ++ | ++ | +|
---|---|---|---|
+ | ++ | ++ | +|
+ | ++ | +||
+ | ++ | ++ | ++ | +
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | ++ | +|
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | ++ | +|
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | ++ | ++ | +
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | ++ | +|
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | ++ | +|
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | +||
+ | ++ | ++ | +|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ + + + + | +
+ | ++ | +
---|---|
+ | +sandbox的cgroup父路径,runtime可根据实际情况使用cgroupfs或systemd的语法。(不支持配置) + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | +sandbox的元数据,这项信息唯一标识一个sandbox,runtime必须利用此信息确保操作正确,runtime也可以根据此信息来改善用户体验,例如构建可读的sandbox名称。 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +设备的Cgroup权限,(r允许容器从指定的设备读取; w允许容器从指定的设备写入; m允许容器创建尚不存在的设备文件) + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +sandbox的额外信息,key是任意string,value是json格式的字符串,这些信息可以是任意调试内容。当verbose为true时info不能为空。(暂不支持配置) + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +sandbox的额外信息,key是任意string,value是json格式的字符串,这些信息可以是任意调试内容。当verbose为true时info不能为空。(暂不支持配置) + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | +Runtime额外的信息,info的key为任意值,value为json格式,可包含任何debug信息;只有Verbose为true是才应该被赋值 + |
+
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | ++ | +
+ | +
+ "docker.io": "registry-1.docker.io", + + + |
+ + | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | +超时时间的秒数,若在该时间内inspect查询容器信息未执行成功,则停止等待并立即报错,默认为120秒,当配置小于等于0的值,表示不启用timeout机制inspect查询容器信息会一直等待,直到获取容器信息成功后返回。 + |
+
+ | ++ | ++ | +
+ + + + + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ + + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | +64位整数(int64)。值为-1或非负数,-1表示不限制,0表示不设置(不限制);单位可以为空(byte),KB,MB,GB,TB,PB. + |
++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | +64位整数(int64)。值为正整数,可以为0,0表示不设置(不限制);单位可以为空(byte),KB,MB,GB,TB,PB. + |
++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | +rootfsSize解析出的大小为int64范围内以字节表示的正数,默认单位为B,也可指定为([kKmMgGtTpP])?[iI]?[bB]?$。(device mapper场景下最小取值为10G) + |
++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | +64位整数(int64)。可以为0、负,但不能超过2的63 次方减 1,0、负表示不做限制(max)。 +由于创建容器的过程中会临时打开一些句柄,所以此值不能设置的太小,不然容器可能不受files limit的限制(如果设置的数小于当前已经打开的句柄数,会导致cgroup文件写不进去),建议大于30。 + |
++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | +soft/hard是64位整数(int64)。soft取值 <= hard取值,如果仅仅指定了soft的取值,则hard=soft。对于某些类型的资源并不支持负数,详见下表 + |
+ + | +
+ | ++ | +
---|---|
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | +
+ | ++ | ++ | +
+ + + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +
+ | ++ | ++ | +
+ + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | +指定从哪里导入镜像。如果是docker类型,则为镜像压缩包路径,如果是embedded类型,则为镜像manifest路径。 + |
+|
+ | ++ | +
+ | ++ | ++ | +
+ + | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +|
+ | +超时时间的秒数,若在该时间内inspect查询容器信息未执行成功,则停止等待并立即报错,默认为120秒,当配置小于等于0的值,表示不启用timeout机制inspect查询容器信息会一直等待,直到获取容器信息成功后返回。 + |
+
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | +|
+ | ++ | +|
+ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ + + + + + + | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | +
+ (1)underlay_l2、overlay_l2、vpc-router组网缺省值distributed_l2,且只支持distributed_l2。 +(2)underlay_ipvlan组网,默认distributed_l2。CCN场景只支持null、fixed;CCE和FST 5G core场景只支持null、distributed_l2。 +(3)phy-direct、dpdk-direct组网,默认l2,可选null、distributed_l2。FST 5G core场景只支持null、distributed_l2。 + + + + + + + |
+
+ | ++ | ++ | +子网信息。Canal支持的subnet mask范围为[8,29],并且要求IP地址不能为Multicast地址(如224.0.0.0/4),保留地址(240.0.0.0/4),本地link地址(169.254.0.0/16)以及本地loop地址(127.0.0.0/8)。 + |
+
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ + + | +
+ | ++ | ++ | +主要描述键值对类型。表2 + |
+
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | ++ | +
+ | ++ | ++ | ++ | +
+ | ++ | ++ | +具体配置请参见表1 CNI单网络配置参数。 + |
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | +
|
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | +
|
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | +
|
+
+ | ++ | ++ | ++ | +
---|---|---|---|
+ | ++ | ++ | +
+ hostpath:containerpath:permission [hostpath:containerpath:permission ...] + + + + + |
+
+ | ++ | ++ | ++ + + + | +
+ | ++ | ++ + | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | +
|
+
+ | ++ | ++ | +
---|---|---|
+ | ++ + | +
|
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | +参数格式为<uid>:<gid>:<offset>,参数说明如下: + + |
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ + | +
+ | ++ | ++ + | +
+ | ++ | ++ | +
+ | ++ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +
+ | ++ | ++ | +
---|---|---|
+ | ++ | +
|
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | +
|
+
+ | ++ | ++ | +
---|---|---|
+ | ++ | ++ | +