前言:虽然学习了一段时间的k8s的各种资源,但是静态POD一直停留在概念层面,不知道它有什么用。
静态POD
下面是摘录自《kubernetes权威指南》上关于静态POD的描述信息。
定义:静态Pod是由kubelet进行管理的仅存在于特定Node上的Pod。它们不能通过API Server进行管理,无法与ReplicationController、Deployment
或者DaemonSet进行关联,并且kubelet无法对它们进行健康检查。静态Pod总是由kubelet创建的,并且总在kubelet所在的Node上运行。
创建静态Pod有两种方式:配置文件方式和HTTP方式。
1. 配置文件方式
首先,需要设置kubelet的启动参数“--config”,指定kubelet需要监控的配置文件所在的目录,kubelet会定期扫描该目录,并根据该目录下的.yaml或.json文件进行创建操作。
假设配置目录为/etc/kubelet.d/,配置启动参数为--config=/etc/kubelet.d/,然后重启kubelet服务。
在目录/etc/kubelet.d中放入static-web.yaml文件,内容如下:
apiVersion: v1
kind: Pod
metadata:
name: static-web
labels:
name: static-web
spec:
containers:
- name: static-web
image: nginx
ports:
- name: web
containerPort: 80
静态POD创建后,可以通过kubectl查看到它,
PS:看起来和普通POD没有什么不同。
静态Pod无法通过API Server直接管理,所以在Master上尝试删除这个Pod时,会使其变成Pending状态,且不会被删除。
删除该Pod的操作只能是到其所在Node上将其定义文件staticweb.yaml从/etc/kubelet.d目录下删除。
2.HTTP方式
通过设置kubelet的启动参数“--manifest-url”,kubelet将会定期从该URL地址下载Pod的定义文件,并以.yaml或.json文件的格式进行解析,然后创建Pod。其实现方式与配置文件方式是一致的。
PS:这种没有实践过,应该和方式1一样,只是获取yaml文件的位置不同。
标签:web,yaml,静态,kubelet,POD,Pod From: https://www.cnblogs.com/cosmos-wong/p/16851921.html