kubernetes - 从同一个 YAML 定义文件创建多个 pod
问题描述
所以,我有一个 pod 定义文件,我想知道是否有办法使用 kubectl apply 命令从同一个定义文件创建 pod 的多个实例。我知道这可以通过部署来完成,但想知道是否有一种方法可以使用 apply 命令快速启动多个 pod?
解决方案
我知道这可以通过部署来完成,但想知道是否有一种方法可以使用 apply 命令快速启动多个 pod?
是的,这是可能的,但不能使用简单的kubectl apply
命令,因为它没有这样的选项/功能,并且不能用于从单个 yaml 定义文件创建 pod 的多个实例。
如果您只需要创建n 个独立的 pod,而不是由任何replicaset
,等管理deployment
,statefulset
那么您可以为此目的使用一个简单的 bash one-liner。
假设我们想基于以下 yaml 模板快速启动 10 个独立的 pod,命名为pod-template.yaml
:
apiVersion: v1
kind: Pod
metadata:
name: {{pod-name}}
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
我们可以使用以下脚本来做到这一点:
for i in {1..10}; do sed "s/{{pod-name}}/pod-$i/g" pod-template.yaml | kubectl apply -f - ; done
它将创建 10 个名为pod-1
, pod-2
...的 pod pod-10
:
$ for i in {1..10}; do sed "s/{{pod-name}}/pod-$i/g" pod-template.yaml | kubectl apply -f - ; done
pod/pod-1 created
pod/pod-2 created
pod/pod-3 created
pod/pod-4 created
pod/pod-5 created
pod/pod-6 created
pod/pod-7 created
pod/pod-8 created
pod/pod-9 created
pod/pod-10 created
以防万一您现在想删除它们并且不想一一删除;)
for i in {1..10};do kubectl delete pod pod-$i; done
推荐阅读
- javascript - 如何同时翻转 SectionList 中多个项目的开关?
- android - 如何限制 Places Autocomplete api 仅返回距当前位置 2 公里范围内的地点
- macos - 设置 CS50 IDE 时遇到问题
- python - 访问 with-block 之外的值
- reactjs - 如何使用 React 将数据插入到影子 dom 中?
- javascript - 如何在 IE 以外的浏览器中使用 Angular 中的输入类型 = 文件获取完整文件路径
- python - 如何使用 Python NLP 从句子列表中提取特定单词。这些词是医疗设备的零件
- python - 在 Pandas Dataframe 中出现语法错误
- flutter - 获取其他位置的天气,即使经过正确的纬度和经度
- sqlite - 如何重置 Superset 的数据库?