ZH-trans: fixing formatting errors (#11661)
* ZH-trans: fixing formatting errors * Update ZH-trans: fixing formatting errors
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
13c89553f6
commit
2fc7e6e2d9
@@ -1,32 +1,32 @@
|
||||
---
|
||||
approvers:
|
||||
- jsafrane
|
||||
title: 静态Pods
|
||||
title: 静态 Pods
|
||||
---
|
||||
|
||||
**如果你正在运行Kubernetes集群并且使用静态pods在每个节点上起一个pod,那么最好使用[DaemonSet](/cn/docs/concepts/workloads/controllers/daemonset/)!**
|
||||
**如果你正在运行 Kubernetes 集群并且使用静态 pods 在每个节点上起一个 pod,那么最好使用 [DaemonSet](/cn/docs/concepts/workloads/controllers/daemonset/)!**
|
||||
|
||||
*静态pods*直接由特定节点上的kubelet进程来管理,不通过主控节点上的API服务器。静态pod不关联任何replication controller,它由kubelet进程自己来监控,当pod崩溃时重启该pod。对于静态pod没有健康检查。静态pod始终绑定在某一个kubelet,并且始终运行在同一个节点上。
|
||||
*静态 pods* 直接由特定节点上的 kubelet 进程来管理,不通过主控节点上的 API 服务器。静态 pod 不关联任何 replication controller,它由 kubelet 进程自己来监控,当 pod 崩溃时重启该 pod。对于静态 pod 没有健康检查。静态 pod 始终绑定在某一个 kubelet,并且始终运行在同一个节点上。
|
||||
|
||||
Kubelet自动为每一个静态pod在Kubernetes的API服务器上创建一个镜像Pod(Mirror Pod),因此可以在API服务器查询到该pod,但是不被API服务器控制(例如不能删除)。
|
||||
Kubelet 自动为每一个静态 pod 在 Kubernetes 的 API 服务器上创建一个镜像 Pod(Mirror Pod),因此可以在 API 服务器查询到该 pod,但是不被 API 服务器控制(例如不能删除)。
|
||||
|
||||
## 静态pod创建
|
||||
## 静态 pod 创建
|
||||
|
||||
静态pod有两种创建方式:用配置文件或者通过HTTP。
|
||||
静态 pod 有两种创建方式:用配置文件或者通过 HTTP。
|
||||
|
||||
### 配置文件
|
||||
|
||||
配置文件就是放在特定目录下的标准的JSON或YAML格式的pod定义文件。用`kubelet --pod-manifest-path=<the directory>`来启动kubelet进程,kubelet将会周期扫描<the directory>这个目录,根据这个目录下出现或消失的YAML/JSON文件来创建或删除静态pod。
|
||||
配置文件就是放在特定目录下的标准的 JSON 或 YAML 格式的 pod 定义文件。用`kubelet --pod-manifest-path=<the directory>`来启动 kubelet 进程,kubelet 将会周期扫描<the directory>这个目录,根据这个目录下出现或消失的 YAML/JSON 文件来创建或删除静态 pod。
|
||||
|
||||
下面例子用静态pod的方式启动一个nginx的Web服务器:
|
||||
下面例子用静态 pod 的方式启动一个 nginx 的 Web 服务器:
|
||||
|
||||
1. 选择一个节点来运行静态pod。这个例子中就是`my-node1`。
|
||||
1. 选择一个节点来运行静态 pod。这个例子中就是`my-node1`。
|
||||
|
||||
```
|
||||
[joe@host ~] $ ssh my-node1
|
||||
```
|
||||
|
||||
2. 选择一个目录,例如/etc/kubelet.d,把web服务器的pod定义文件放在这个目录下,例如`/etc/kubelet.d/static-web.yaml`:
|
||||
2. 选择一个目录,例如/etc/kubelet.d,把 web 服务器的 pod 定义文件放在这个目录下,例如`/etc/kubelet.d/static-web.yaml`:
|
||||
|
||||
```
|
||||
[root@my-node1 ~] $ mkdir /etc/kubelet.d/
|
||||
@@ -48,27 +48,27 @@ Kubelet自动为每一个静态pod在Kubernetes的API服务器上创建一个镜
|
||||
EOF
|
||||
```
|
||||
|
||||
3.配置节点上的kubelet使用这个目录,kubelet启动时增加`--pod-manifest-path=/etc/kubelet.d/`参数。如果是Fedora系统,在Kubelet配置文件/etc/kubernetes/kubelet中添加下面这行:
|
||||
3.配置节点上的 kubelet 使用这个目录,kubelet 启动时增加`--pod-manifest-path=/etc/kubelet.d/`参数。如果是 Fedora 系统,在 Kubelet 配置文件 /etc/kubernetes/kubelet 中添加下面这行:
|
||||
|
||||
```
|
||||
KUBELET_ARGS="--cluster-dns=10.254.0.10 --cluster-domain=kube.local --pod-manifest-path=/etc/kubelet.d/"
|
||||
```
|
||||
|
||||
如果是其它Linux发行版或者其它Kubernetes安装方式,配置方法可能会不一样。
|
||||
如果是其它 Linux 发行版或者其它 Kubernetes 安装方式,配置方法可能会不一样。
|
||||
|
||||
4. 重启kubelet。如果是Fedora系统,就是:
|
||||
4. 重启 kubelet。如果是 Fedora 系统,就是:
|
||||
|
||||
```
|
||||
[root@my-node1 ~] $ systemctl restart kubelet
|
||||
```
|
||||
|
||||
## 通过HTTP创建静态Pods
|
||||
## 通过 HTTP 创建静态 Pods
|
||||
|
||||
Kubelet周期地从--manifest-url=<URL>参数指定的地址下载文件,并且把它翻译成JSON/YAML格式的pod定义。此后的操作方式与--pod-manifest-path=<directory>相同,kubelet会不时地重新下载该文件,当文件变化时对应地终止或启动静态pod(如下)。
|
||||
Kubelet 周期地从 --manifest-url=<URL> 参数指定的地址下载文件,并且把它翻译成 JSON/YAML 格式的 pod 定义。此后的操作方式与 --pod-manifest-path=<directory> 相同,kubelet 会不时地重新下载该文件,当文件变化时对应地终止或启动静态 pod(如下)。
|
||||
|
||||
## 静态pods的动作行为
|
||||
## 静态 pods 的动作行为
|
||||
|
||||
kubelet启动时,由`--pod-manifest-path=` or `--manifest-url=`参数指定的目录下定义的所有pod都会自动创建,例如,我们示例中的static-web。 (可能要花些时间拉取nginx镜像,耐心等待...)
|
||||
kubelet 启动时,由 `--pod-manifest-path=` 或者 `--manifest-url=` 参数指定的目录下定义的所有 pod 都会自动创建,例如,我们示例中的 static-web。 (可能要花些时间拉取 nginx 镜像,耐心等待...)
|
||||
|
||||
```shell
|
||||
[joe@my-node1 ~] $ docker ps
|
||||
@@ -76,7 +76,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAME
|
||||
f6d05272b57e nginx:latest "nginx" 8 minutes ago Up 8 minutes k8s_web.6f802af4_static-web-fk-node1_default_67e24ed9466ba55986d120c867395f3c_378e5f3c
|
||||
```
|
||||
|
||||
如果我们查看Kubernetes的API服务器(运行在主机 `my-master`),可以看到这里创建了一个新的镜像Pod:
|
||||
如果我们查看 Kubernetes 的 API 服务器(运行在主机 `my-master`),可以看到这里创建了一个新的镜像 Pod:
|
||||
|
||||
```shell
|
||||
[joe@host ~] $ ssh my-master
|
||||
@@ -85,9 +85,9 @@ NAME READY STATUS RESTARTS AGE
|
||||
static-web-my-node1 1/1 Running 0 2m
|
||||
```
|
||||
|
||||
静态pod的标签会传递给镜像Pod,可以用来过滤或筛选。
|
||||
静态 pod 的标签会传递给镜像 Pod,可以用来过滤或筛选。
|
||||
|
||||
需要注意的是,我们不能通过API服务器来删除静态pod(例如,通过 [`kubectl`](/docs/user-guide/kubectl/) 命令),kebelet不会删除它。
|
||||
需要注意的是,我们不能通过 API 服务器来删除静态 pod(例如,通过 [`kubectl`](/docs/user-guide/kubectl/) 命令),kebelet 不会删除它。
|
||||
|
||||
```shell
|
||||
[joe@my-master ~] $ kubectl delete pod static-web-my-node1
|
||||
@@ -97,7 +97,7 @@ NAME READY STATUS RESTARTS AGE
|
||||
static-web-my-node1 1/1 Running 0 12s
|
||||
```
|
||||
|
||||
返回`my-node1`主机,我们尝试手动终止容器,可以看到kubelet很快就会自动重启容器。
|
||||
返回`my-node1`主机,我们尝试手动终止容器,可以看到 kubelet 很快就会自动重启容器。
|
||||
|
||||
```shell
|
||||
[joe@host ~] $ ssh my-node1
|
||||
@@ -108,9 +108,9 @@ CONTAINER ID IMAGE COMMAND CREATED ...
|
||||
5b920cbaf8b1 nginx:latest "nginx -g 'daemon of 2 seconds ago ...
|
||||
```
|
||||
|
||||
## 静态pods的动态增加和删除
|
||||
## 静态 pods 的动态增加和删除
|
||||
|
||||
运行中的kubelet周期扫描配置的目录(我们这个例子中就是`/etc/kubelet.d`)下文件的变化,当这个目录中有文件出现或消失时创建或删除pods。
|
||||
运行中的 kubelet 周期扫描配置的目录(我们这个例子中就是`/etc/kubelet.d`)下文件的变化,当这个目录中有文件出现或消失时创建或删除 pods。
|
||||
|
||||
```shell
|
||||
[joe@my-node1 ~] $ mv /etc/kubelet.d/static-web.yaml /tmp
|
||||
|
||||
Reference in New Issue
Block a user