diff --git a/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-config-file.md b/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-config-file.md index cab48e2fa0607..090786f920c7f 100644 --- a/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-config-file.md +++ b/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-config-file.md @@ -147,7 +147,7 @@ parts of that configuration file during your deployment process. -例如,如果你的应用程序使用以下配置文件: +例如,如果你的应用程序使用以下配置文件: ```yaml apiUrl: "https://my.api.com/api/v1" @@ -158,7 +158,7 @@ password: "" -你可以使用以下定义将其存储在 Secret 中: +你可以使用以下定义将其存储在 Secret 中: ```yaml apiVersion: v1 @@ -173,6 +173,13 @@ stringData: password: ``` +{{< note >}} + +Secret 的 `stringData` 字段不能很好地与服务器端应用配合使用。 +{{< /note >}} + +Secret 的 `stringData` 字段不能很好地与服务器端应用配合使用。 +{{< /note >}} + diff --git a/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-kustomize.md b/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-kustomize.md index b4edc00a19580..49825101dc2ef 100644 --- a/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-kustomize.md +++ b/content/zh-cn/docs/tasks/configmap-secret/managing-secret-using-kustomize.md @@ -57,9 +57,9 @@ secretGenerator: {{% tab name="文件" %}} -1. 用 base64 编码的值存储凭据到文件中: +1. 将凭据存储在文件中。文件名是 Secret 的 key 值: ```shell echo -n 'admin' > ./username.txt diff --git a/content/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions.md b/content/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions.md index 0b30493e8f413..34aea0f599248 100644 --- a/content/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions.md +++ b/content/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions.md @@ -1320,21 +1320,21 @@ Xref: [Supported evaluation on CEL](https://github.com/google/cel-spec/blob/v0.6 --> 验证规则例子: -| 规则 | 目的 | -| ---------------- | ------------ | -| `self.minReplicas <= self.replicas && self.replicas <= self.maxReplicas` | 验证定义副本数的三个字段大小顺序是否正确 | -| `'Available' in self.stateCounts` | 验证 map 中是否存在键名为 `Available`的条目 | -| `(size(self.list1) == 0) != (size(self.list2) == 0)` | 验证两个 list 之一是非空的,但不是二者都非空 | -| !('MY_KEY' in self.map1) || self['MY_KEY'].matches('^[a-zA-Z]*$') | 如果某个特定的 key 在 map 中,验证 map 中这个 key 的 value | -| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$')` | 验证一个 listMap 中主键 'name' 为 'MY_ENV' 'value' 的表项,检查其取值 'value' | -| `has(self.expired) && self.created + self.ttl < self.expired` | 验证 'Expired' 日期是否晚于 'Create' 日期加上 'ttl' 持续时间 | -| `self.health.startsWith('ok')` | 验证 'health' 字符串字段有前缀 'ok' | -| `self.widgets.exists(w, w.key == 'x' && w.foo < 10)` | 验证 key 为 'x' 的 listMap 项的 'foo' 属性是否小于 10 | -| `type(self) == string ? self == '100%' : self == 1000` | 在 int 型和 string 型两种情况下验证 int-or-string 字段 | -| `self.metadata.name.startsWith(self.prefix)` | 验证对象的名称是否具有另一个字段值的前缀 | -| `self.set1.all(e, !(e in self.set2))` | 验证两个 listSet 是否不相交 | -| `size(self.names) == size(self.details) && self.names.all(n, n in self.details)` | 验证 'details' map 是由 'names' listSet 的项目所决定的。 | -| `size(self.clusters.filter(c, c.name == self.primary)) == 1` | 验证 'primary' 属性仅在 'clusters' listMap 中出现一次且只有一次 | +| 规则 | 目的 | +| ---------------- | ------------ | +| `self.minReplicas <= self.replicas && self.replicas <= self.maxReplicas` | 验证定义副本数的三个字段大小顺序是否正确 | +| `'Available' in self.stateCounts` | 验证映射中是否存在键名为 `Available`的条目 | +| `(size(self.list1) == 0) != (size(self.list2) == 0)` | 检查两个列表之一是非空的,但不是二者都非空 | +| !('MY_KEY' in self.map1) || self['MY_KEY'].matches('^[a-zA-Z]*$') | 如果某个特定的键在映射中,验证映射中对应键的取值 | +| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$')` | 验证一个 listMap 中主键 'name' 为 'MY_ENV' 的表项的取值 | +| `has(self.expired) && self.created + self.ttl < self.expired` | 验证 'Expired' 日期是否晚于 'Create' 日期加上 'ttl' 时长 | +| `self.health.startsWith('ok')` | 验证 'health' 字符串字段有前缀 'ok' | +| `self.widgets.exists(w, w.key == 'x' && w.foo < 10)` | 验证键为 'x' 的 listMap 项的 'foo' 属性是否小于 10 | +| `type(self) == string ? self == '100%' : self == 1000` | 在 int 型和 string 型两种情况下验证 int-or-string 字段 | +| `self.metadata.name.startsWith(self.prefix)` | 验证对象的名称是否以另一个字段值为前缀 | +| `self.set1.all(e, !(e in self.set2))` | 验证两个 listSet 是否不相交 | +| `size(self.names) == size(self.details) && self.names.all(n, n in self.details)` | 验证 'details' 映射中的 'names' 来自于 listSet | +| `size(self.clusters.filter(c, c.name == self.primary)) == 1` | 验证 'primary' 属性在 'clusters' listMap 中出现一次且只有一次 | 参考:[CEL 中支持的求值](https://github.com/google/cel-spec/blob/v0.6.0/doc/langdef.md#evaluation) diff --git a/content/zh-cn/docs/tasks/job/automated-tasks-with-cron-jobs.md b/content/zh-cn/docs/tasks/job/automated-tasks-with-cron-jobs.md index 9186d4dfc4090..a3e4a7a64926e 100644 --- a/content/zh-cn/docs/tasks/job/automated-tasks-with-cron-jobs.md +++ b/content/zh-cn/docs/tasks/job/automated-tasks-with-cron-jobs.md @@ -38,7 +38,7 @@ Here is a manifest for a CronJob that runs a simple demonstration task every min CronJob 需要一个配置文件。 以下是针对一个 CronJob 的清单,该 CronJob 每分钟运行一个简单的演示任务: -{{% code file="application/job/cronjob.yaml" %}} +{{% code_sample file="application/job/cronjob.yaml" %}} @@ -302,12 +303,12 @@ example program: 我们将用 `amqp-consume` 实用程序从队列中读取消息并运行实际的程序。 这里给出一个非常简单的示例程序: -{{% code language="python" file="application/job/rabbitmq/worker.py" %}} +{{% code_sample language="python" file="application/job/rabbitmq/worker.py" %}} -赋予脚本执行权限: +赋予脚本执行权限: ```shell chmod +x worker.py @@ -371,7 +372,7 @@ image to match the name you used, and call it `./job.yaml`. 这里给出一个 Job 定义 YAML 文件。你将需要拷贝一份 Job 并编辑该镜像以匹配你使用的名称,保存为 `./job.yaml`。 -{{% code file="application/job/rabbitmq/job.yaml" %}} +{{% code_sample file="application/job/rabbitmq/job.yaml" %}} ## 使用任务填充队列 -现在,让我们往队列里添加一些 “任务”。在这个例子中,我们的任务是一些将被打印出来的字符串。 +现在,让我们往队列里添加一些“任务”。在这个例子中,我们的任务是一些将被打印出来的字符串。 启动一个临时的可交互的 Pod 用于运行 Redis 命令行界面。 @@ -192,9 +192,9 @@ called rediswq.py ([Download](/examples/application/job/redis/rediswq.py)). The "worker" program in each Pod of the Job uses the work queue client library to get work. Here it is: --> -Job 中每个 Pod 内的 “工作程序” 使用工作队列客户端库获取工作。具体如下: +Job 中每个 Pod 内的“工作程序” 使用工作队列客户端库获取工作。具体如下: -{{% code language="python" file="application/job/redis/worker.py" %}} +{{% code_sample language="python" file="application/job/redis/worker.py" %}} 如果你使用的是 [Google Container Registry](https://cloud.google.com/tools/container-registry/), -请先用你的 project ID 给你的镜像打上标签,然后 push 到 GCR 。请将 `` 替换为你自己的 project ID。 +请先用你的 project ID 给你的镜像打上标签,然后 push 到 GCR。请将 `` 替换为你自己的 project ID。 ```shell docker tag job-wq-2 gcr.io//job-wq-2 @@ -257,7 +257,7 @@ Here is the job definition: 这是 Job 定义: -{{% code file="application/job/redis/job.yaml" %}} +{{% code_sample file="application/job/redis/job.yaml" %}} 当你创建此 Job 时,控制平面会创建一系列 Pod,你指定的每个索引都会运行一个 Pod。 `.spec.parallelism` 的值决定了一次可以运行多少个 Pod, @@ -294,4 +296,4 @@ The output is similar to: ``` xuq -``` \ No newline at end of file +``` diff --git a/content/zh-cn/docs/tasks/job/job-with-pod-to-pod-communication.md b/content/zh-cn/docs/tasks/job/job-with-pod-to-pod-communication.md index 33771fd7502eb..cdb3244530de4 100644 --- a/content/zh-cn/docs/tasks/job/job-with-pod-to-pod-communication.md +++ b/content/zh-cn/docs/tasks/job/job-with-pod-to-pod-communication.md @@ -73,7 +73,7 @@ To enable pod-to-pod communication using pod hostnames in a Job, you must do the 要在某 Job 中启用使用 Pod 主机名的 Pod 间通信,你必须执行以下操作: 首先,将以下作业模板下载到名为 `job-tmpl.yaml` 的文件中。 -{{% code file="application/job/job-tmpl.yaml" %}} +{{% code_sample file="application/job/job-tmpl.yaml" %}} ```shell # 使用 curl 下载 job-tmpl.yaml @@ -101,8 +101,8 @@ variable, writing into a temporary directory named `jobs`. Run this now: --> ### 基于模板创建清单 -下面的 Shell 代码片段使用 `sed` 将字符串 `$ITEM` 替换为循环变量,并将结果 -写入到一个名为 `jobs` 的临时目录。 +下面的 Shell 代码片段使用 `sed` 将字符串 `$ITEM` 替换为循环变量, +并将结果写入到一个名为 `jobs` 的临时目录。 ```shell # 展开模板文件到多个文件中,每个文件对应一个要处理的条目 @@ -377,7 +377,7 @@ Kubernetes 接收清单文件并执行你所创建的 Job。 kubectl delete job -l jobgroup=jobexample ``` --> -### 清理 {#cleanup-2} +### 清理 {#cleanup-2} ```shell # 删除所创建的 Job @@ -437,7 +437,7 @@ you can check on all Pods for these templated Jobs with a single command. {{< glossary_tooltip text="标签" term_id="label" >}},以便能够将一个 Job 的 Pod 与另一个 Job 的 Pod 区分开来。 -在本例中,每个 Job 及其 Pod 模板有一个标签: `jobgroup=jobexample`。 +在本例中,每个 Job 及其 Pod 模板有一个标签:`jobgroup=jobexample`。 Kubernetes 自身对标签名 `jobgroup` 没有什么要求。 为创建自同一模板的所有 Job 使用同一标签使得我们可以方便地同时操作组中的所有作业。 diff --git a/content/zh-cn/docs/tasks/job/pod-failure-policy.md b/content/zh-cn/docs/tasks/job/pod-failure-policy.md index 62e325135e8f5..f23269c8d41b7 100644 --- a/content/zh-cn/docs/tasks/job/pod-failure-policy.md +++ b/content/zh-cn/docs/tasks/job/pod-failure-policy.md @@ -72,7 +72,7 @@ Pod 失效策略来避免不必要的 Pod 重启。 首先,基于配置创建一个 Job: -{{% code file="/controllers/job-pod-failure-policy-failjob.yaml" %}} +{{% code_sample file="/controllers/job-pod-failure-policy-failjob.yaml" %}} 1. 基于配置创建 Job: - {{% code file="/controllers/job-pod-failure-policy-ignore.yaml" %}} + {{% code_sample file="/controllers/job-pod-failure-policy-ignore.yaml" %}} 1. 首先基于配置创建一个 Job: - {{% code file="/controllers/job-pod-failure-policy-config-issue.yaml" %}} + {{% code_sample file="/controllers/job-pod-failure-policy-config-issue.yaml" %}}