运行 k8s yaml 中 kubectl 图像的命令行
Running command line for kubectl image in yaml for k8s
我想在使用 kubectl 镜像的 yaml 文件命令行中为 `kubectl' 的任何命令声明,即等待另一个 pod 进入就绪状态。
如果我 运行 命令:
kubectl wait pod/mypod --for=condition=ready --timeout=120s
我收到了一条真实消息:
pod/mypod condition met
第一-如何运行命令提示符,简单使用?
即使用 kubectl version
,所以输出是 kube 的版本,用于使用图像:kubectl:
kubectl run test -it --rm --image=bitnami/kubectl get pods --restart=Never --command --
/bin/kubectl version
(我想 运行 一次,并在 pod 结束时自动删除它。命令也一样:kubectl wait pod/mypod --for=condition=ready --timeout=120s
或任何命令使用 kubectl image)。
上面的方法不行。
此外 - 我应该如何将以上内容转换为 kubernetes yaml 文件(一次 运行 - 完成后,pod 将自动删除)?
当我在等待,即等待 mypod 完成时,以下内容不起作用。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp
replicas: 3
template:
metadata:
labels:
app: myapp
spec:
initContainers:
- name: wait-for-pod
image: bitnami/kubectl
args:
- wait
- pod/mypod
- --for=condition=ready
- --timeout=120s
containers:
- name: myapp
image: myapp
状态:Init:ContainerCannotRun
。
当我 运行:kubectl describe pod <mypod>
,我收到消息:
OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "wait": executable file not found in $PATH: unknown
谢谢。
你的kubectl run
命令是错误的。 --image=bitnami/kubectl get pods
部分不正确。您只需指定图像,而不是命令。
正确的工作命令是
kubectl run test -it --rm --image=bitnami/kubectl --restart=Never -- version
说到部署清单,您几乎就在那里。只需将 command
列表添加到清单中,它应该可以工作。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp
replicas: 3
template:
metadata:
labels:
app: myapp
spec:
initContainers:
- name: wait-for-pod
image: bitnami/kubectl
command:
- kubectl
args:
- wait
- --for=condition=Ready
- pod/mypod
- --timeout=120s
containers:
- name: myapp
image: myapp
现在,您需要记住,附加到每个 pod 的 system:serviceaccount:default:default
服务帐户没有足够的权限在集群中列出 pods。以上所有都不会工作除非你给默认服务帐户适当的权限
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: default
name: service-reader
rules:
- apiGroups: [""]
resources: ["services"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: service-reader-pod
subjects:
- kind: ServiceAccount
name: default
namespace: default
roleRef:
kind: ClusterRole
name: service-reader
apiGroup: rbac.authorization.k8s.io
我想在使用 kubectl 镜像的 yaml 文件命令行中为 `kubectl' 的任何命令声明,即等待另一个 pod 进入就绪状态。
如果我 运行 命令:
kubectl wait pod/mypod --for=condition=ready --timeout=120s
我收到了一条真实消息:
pod/mypod condition met
第一-如何运行命令提示符,简单使用?
即使用 kubectl version
,所以输出是 kube 的版本,用于使用图像:kubectl:
kubectl run test -it --rm --image=bitnami/kubectl get pods --restart=Never --command --
/bin/kubectl version
(我想 运行 一次,并在 pod 结束时自动删除它。命令也一样:kubectl wait pod/mypod --for=condition=ready --timeout=120s
或任何命令使用 kubectl image)。
上面的方法不行。
此外 - 我应该如何将以上内容转换为 kubernetes yaml 文件(一次 运行 - 完成后,pod 将自动删除)?
当我在等待,即等待 mypod 完成时,以下内容不起作用。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp
replicas: 3
template:
metadata:
labels:
app: myapp
spec:
initContainers:
- name: wait-for-pod
image: bitnami/kubectl
args:
- wait
- pod/mypod
- --for=condition=ready
- --timeout=120s
containers:
- name: myapp
image: myapp
状态:Init:ContainerCannotRun
。
当我 运行:kubectl describe pod <mypod>
,我收到消息:
OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "wait": executable file not found in $PATH: unknown
谢谢。
你的kubectl run
命令是错误的。 --image=bitnami/kubectl get pods
部分不正确。您只需指定图像,而不是命令。
正确的工作命令是
kubectl run test -it --rm --image=bitnami/kubectl --restart=Never -- version
说到部署清单,您几乎就在那里。只需将 command
列表添加到清单中,它应该可以工作。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp
replicas: 3
template:
metadata:
labels:
app: myapp
spec:
initContainers:
- name: wait-for-pod
image: bitnami/kubectl
command:
- kubectl
args:
- wait
- --for=condition=Ready
- pod/mypod
- --timeout=120s
containers:
- name: myapp
image: myapp
现在,您需要记住,附加到每个 pod 的 system:serviceaccount:default:default
服务帐户没有足够的权限在集群中列出 pods。以上所有都不会工作除非你给默认服务帐户适当的权限
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: default
name: service-reader
rules:
- apiGroups: [""]
resources: ["services"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: service-reader-pod
subjects:
- kind: ServiceAccount
name: default
namespace: default
roleRef:
kind: ClusterRole
name: service-reader
apiGroup: rbac.authorization.k8s.io