读者朋友们好,我将介绍关于如何在kubernates中创建和删除静态pod的细节。本指南的前提是你对Kubernetes和pod的运行方式有基本的了解。
简介
静态pod是由特定节点上的kubelet守护程序直接管理的,没有API服务器的观察。
它没有一个与之相关的复制控制器;相反,kubelet守护进程一直在跟踪它,并在它崩溃时重新启动。
在不涉及Kubernetes控制平面的情况下,在单个节点上执行pod的一个不错的选择是使用静态pod。
前提条件
需要一个Kubernetes集群,并且必须设置命令行工具kubectl来与你的集群连接。(通过工作流程和Kubernetes控制平面组件)
现在让我们看看如何创建静态pods
首先,我们需要连接到我们希望静态pod运行的节点。由于我们是在minikube上工作的,所以使用.NET命令登录到minikube。
minikube ssh
使用这个命令,我们进入到我们的minikube节点。
下一步是,我们必须将我们的静态pod清单文件放入所有其他静态pod清单文件所在的目录中。
要检查哪个pod是静态pod,从你的minikube节点退出,在你的终端输入命令。
kubectl get pods --all-namespaces

通过使用这个命令,你会看到一个pod的列表。但是,如何识别哪个pod是静态pod呢?
正如我们所知,静态pod是由kubelet管理的。kubelet会做什么,kubelet会将节点的名字与pod的名字相加。
例如,"etcd-minikube"
现在,如何找出这4个pod的清单文件所在的路径?为此,我们必须检查我们的config.yaml文件,它存在于kubelet文件夹中。使用命令抓取config.yaml文件。
在该文件中搜索静态pod路径。

sudo cat /var/lib/kubelet/config.yaml

再次执行 "minikube ssh"
之后,键入命令cd /etc/kubernetes/manifests在节点内,Kubernetes组件的清单文件是指静态pods文件。
cd /etc/kubernetes/manifests
然后做ls来查看/etc/kubernetes/manifests里面的静态pod文件。
ls

现在我在这个目录里面为静态pod写一个清单文件。
注意:首先安装任何你选择的文本编辑器,如nano或vim。我使用nano来编写清单文件,确保在nano前输入sudo,否则会出现权限拒绝的错误。
sudo nano staticpod.yaml

apiVersion: v1
kind: Pod
metadata:
name: staticpod
labels:
role: staticpod-role
spec:
containers:
- name: container
image: nginx
ports:
- name: port
containerPort: 80
protocol: TCP

我们已经创建了一个Nginx容器的文件,作为一个静态pod在80端口运行。
从你的minikube节点注销,回到你的正常终端,输入 "exit"。
并再次使用命令来检查pod的状态。
kubectl get pods

现在,输入命令
kubectl get pods --all-namespaces
你会看到,先前有4个文件,现在有5个文件。

所以,你可以看到,名称为staticpod-minikube的pod已经成功运行。
pod创建-> kubelet管理静态pod,所以,kubelet扫描目录并相应地根据配置文件的配置创建/删除静态pod。
最后,要删除静态pod,只需做minikube ssh,并再次使用cd /etc/kubernetes/manifests .
并使用命令删除该文件。
rm -rf staticpod.yaml
总结一下
该博客解释了如何创建和删除静态pod。我希望你喜欢这个实用的指导。激励自己创建静态pod,并利用它们,同时在Google上查找更多的例子。