fixing
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
---
|
||||
vssueId: 9
|
||||
layout: LearningLayout
|
||||
sharingTitle: 这里有一份免费在线答疑的 K8S 教程
|
||||
sharingTitle: 这里有一份最新的 K8S 教程,还可以免费在线答疑
|
||||
sidebarDepth: 0
|
||||
description: 本教程的主要依据是:Kubernetes官网文档,以及使用Kubernetes落地SpringCloud微服务并投产的实战经验,在线答疑。适用人群_ Kubernetes 初学者_学习过 Kubernetes,但在投产过程中仍有诸多疑虑和困惑的技术爱好者
|
||||
meta:
|
||||
|
||||
@ -22,7 +22,7 @@ metadata:
|
||||
name: "my-first-k8s-node"
|
||||
```
|
||||
|
||||
Kubernetes 在 APIServer 上创建一个节点 API 对象(节点的描述),并且基于 `metadata.name` 字段对节点进行健康检查。如果节点有效([节点组件](/learning/k8s-bg/component.html#node-组件)正在运行),则可以向该节点调度 Pod;否则,该节点 API 对象将被忽略,知道节点变为有效状态。
|
||||
Kubernetes 在 APIServer 上创建一个节点 API 对象(节点的描述),并且基于 `metadata.name` 字段对节点进行健康检查。如果节点有效([节点组件](/learning/k8s-bg/component.html#node-组件)正在运行),则可以向该节点调度 Pod;否则,该节点 API 对象将被忽略,直到节点变为有效状态。
|
||||
|
||||
::: tip
|
||||
Kubernetes 将保留无效的节点 API 对象,并不断地检查该节点是否有效。除非您使用 `kubectl delete node my-first-k8s-node` 命令删除该节点。
|
||||
|
||||
@ -124,8 +124,8 @@ Events: <none>
|
||||
|
||||
依据你集群部署的方式(在哪个云供应商部署,或是在物理机上部署),Addesses 字段可能有所不同。
|
||||
* HostName: 在节点命令行界面上执行 `hostname` 命令所获得的值。启动 kubelet 时,可以通过参数 `--hostname-override` 覆盖
|
||||
* ExternalIP:通常是节点的外部IP(可以从集群外访问的IP地址,内网地址)
|
||||
* InternalIP:通常是从节点内部可以访问的 IP 地址(上面的例子中,此字段为空)
|
||||
* ExternalIP:通常是节点的外部IP(可以从集群外访问的内网IP地址;上面的例子中,此字段为空)
|
||||
* InternalIP:通常是从节点内部可以访问的 IP 地址
|
||||
|
||||
### Conditions
|
||||
|
||||
|
||||
@ -52,4 +52,4 @@ spec:
|
||||
|
||||
UID 是由 Kubernetes 系统生成的,唯一标识某个 Kubernetes 对象的字符串。
|
||||
|
||||
Kubernetes集群中,没创建一个对象,都有一个唯一的 UID。用于区分多次创建的同名对象(如前所述,按照名字删除对象后,重新再创建同名对象时,两次创建的对象 name 相同,但是 UID 不同。)
|
||||
Kubernetes集群中,每创建一个对象,都有一个唯一的 UID。用于区分多次创建的同名对象(如前所述,按照名字删除对象后,重新再创建同名对象时,两次创建的对象 name 相同,但是 UID 不同。)
|
||||
|
||||
@ -37,7 +37,7 @@ spec:
|
||||
|
||||
上述 YAML 文件可用来创建一个 Service:
|
||||
* 名字为 `my-service`
|
||||
* 目标端口未 TCP 9376
|
||||
* 目标端口为 TCP 9376
|
||||
* 选取所有包含标签 app=MyApp 的 Pod
|
||||
|
||||
关于 Service,您还需要了解:
|
||||
|
||||
56
learning/k8s-intermediate/workload/wl-job/cleanup.md
Normal file
56
learning/k8s-intermediate/workload/wl-job/cleanup.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
vssueId: 151
|
||||
layout: LearningLayout
|
||||
description: Kubernetes中的Job对象将创建一个或多个Pod_并确保指定数量的Pod可以成功执行到进程正常结束_本文描述Job如何终止和清理
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes培训,K8S教程,K8S培训,Kubernetes Job
|
||||
---
|
||||
|
||||
# Job的终止和清理
|
||||
|
||||
<AdSenseTitle>
|
||||
|
||||
</AdSenseTitle>
|
||||
|
||||
当 Job 完成后:
|
||||
* 将不会创建新的 Pod
|
||||
* 已经创建的 Pod 也不会被清理掉。此时,您仍然可以继续查看已结束 Pod 的日志,以检查 errors/warnings 或者其他诊断用的日志输出
|
||||
* Job 对象也仍然保留着,以便您可以查看该 Job 的状态
|
||||
* 由用户决定是否删除已完成的 Job 及其 Pod
|
||||
* 可通过 `kubectl` 命令删除 Job,例如: `kubectl delete jobs/pi` 或者 `kubectl delete -f ./job.yaml`
|
||||
* 删除 Job 对象时,由该 Job 创建的 Pod 也将一并被删除
|
||||
|
||||
Job 通常会顺利的执行下去,但是在如下情况可能会非正常终止:
|
||||
* 某一个 Pod 执行失败(且 `restartPolicy=Never`)
|
||||
* 或者某个容器执行出错(且 `restartPolicy=OnFailure`)
|
||||
* 此时,Job 按照 [处理Pod和容器的失败](./failure.html) 中 `.spec.bakcoffLimit` 描述的方式进行处理
|
||||
* 一旦重试次数达到了 `.spec.backoffLimit` 中的值,Job 将被标记为失败,且尤其创建的所有 Pod 将被终止
|
||||
* Job 中设置了 `.spec.activeDeadlineSeconds`。该字段限定了 Job 对象在集群中的存活时长,一旦达到 `.spec.activeDeadlineSeconds` 指定的时长,该 Job 创建的所有的 Pod 都将被终止,Job 的 Status 将变为 `type:Failed` 、 `reason: DeadlineExceeded`
|
||||
|
||||
::: tip
|
||||
Job 中 `.spec.activeDeadlineSeconds` 字段的优先级高于 `.spec.backoffLimit`。因此,正在重试失败 Pod 的 Job,在达到 `.spec.activeDeadlineSecondes` 时,将立刻停止重试,即使 `.spec.backoffLimit` 还未达到。
|
||||
:::
|
||||
|
||||
例如:
|
||||
|
||||
``` yaml
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: pi-with-timeout
|
||||
spec:
|
||||
backoffLimit: 5
|
||||
activeDeadlineSeconds: 100
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: pi
|
||||
image: perl
|
||||
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
|
||||
restartPolicy: Never
|
||||
```
|
||||
|
||||
::: tip 注意
|
||||
Job 中有两个 activeDeadlineSeconds: `.spec.activeDeadlineSeconds` 和 `.spec.template.spec.activeDeadlineSeconds`(参考 [Pod](/learning/k8s-intermediate/workload/init-container.html#初始化容器的行为))。请不要混淆了
|
||||
:::
|
||||
23
learning/k8s-intermediate/workload/wl-job/pattern.md
Normal file
23
learning/k8s-intermediate/workload/wl-job/pattern.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
vssueId: 151
|
||||
layout: LearningLayout
|
||||
description: Kubernetes中的Job对象将创建一个或多个Pod_并确保指定数量的Pod可以成功执行到进程正常结束_本文描述Job相关的设计模式
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes培训,K8S教程,K8S培训,Kubernetes Job
|
||||
---
|
||||
|
||||
# Job设计模式
|
||||
|
||||
<AdSenseTitle>
|
||||
|
||||
</AdSenseTitle>
|
||||
|
||||
Kubernetes Job 对象可以用来支持 Pod 的并发执行,但是:
|
||||
* Job 对象并非设计为支持需要紧密相互通信的Pod的并发执行,例如科学计算
|
||||
* Job 对象不支持并发处理一系列相互独立但是又相互关联的工作任务,例如:
|
||||
* 发送邮件
|
||||
* 渲染页面
|
||||
* 转码文件
|
||||
* 扫描 NoSQL 数据库中的主键
|
||||
* 等
|
||||
Reference in New Issue
Block a user