在Kubernetes pod部署名称上添加随机字符串

3 kubernetes kubectl

我有一个模板,它基本上是一个实用程序容器,用于在pod中运行kubectl.

我想要做的是,能够对同一模板进行多次部署,使用不同的名称,如"utilitypod-randomID".

有没有办法做到这一点,通过kubectl和一些shell脚本,或类似的东西?

当前模板如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: utilitypod
  namespace: blah-dev
labels:
  purpose: utility-pod
spec:
  containers:
  - name: utilitypod
  image: blahblah/utilitypod:latest
  command: [ "/bin/bash", "-c", "--" ]
  args: [ "while true; do sleep 28800; done;" ]
  env: 
  - name: KUBERNETES_SERVICE_HOST
    value: "api.dev.blah.internal"
  - name: KUBERNETES_SERVICE_PORT
    value: "443"
Run Code Online (Sandbox Code Playgroud)

Rob*_*cok 15

您可以替换namegenerateName,这会添加随机后缀.您的模板将如下所示:

apiVersion: v1
kind: Pod
metadata:
  generateName: utilitypod-
  namespace: blah-dev
labels:
  purpose: utility-pod
spec:
  containers:
  - name: utilitypod
  image: blahblah/utilitypod:latest
  command: [ "/bin/bash", "-c", "--" ]
  args: [ "while true; do sleep 28800; done;" ]
  env: 
  - name: KUBERNETES_SERVICE_HOST
    value: "api.dev.blah.internal"
  - name: KUBERNETES_SERVICE_PORT
    value: "443"
Run Code Online (Sandbox Code Playgroud)

你要知道,这只会一起工作kubectl create -f template.yaml,而不是apply作为apply查找其名称的资源,并尝试比较它们的定义,但该模板不包含特定名称.