我想在使用kubectl映像的yaml文件命令行中声明任何"kubectl"命令,即等待另一个pod进入就绪状态。
如果我在命令中运行:
kubectl wait pod/mypod --for=condition=ready --timeout=120s
我得到了一个真实的信息:
pod/mypod条件满足
First-如何运行命令提示符,以便简单使用?
即使用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
服务帐户没有足够的特权在集群中列出pod。除非您给予默认服务帐户适当的权限,否则上述所有都将不起作用
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