Docker 在helm安装中运行包含kubectl命令的脚本
我有一个shell脚本,其中有几个kubectl命令,我需要将其作为helm安装的一部分来执行Docker 在helm安装中运行包含kubectl命令的脚本,docker,kubernetes,kubernetes-helm,Docker,Kubernetes,Kubernetes Helm,我有一个shell脚本,其中有几个kubectl命令,我需要将其作为helm安装的一部分来执行 #/bin/bash kubectl创建机密的通用mysecret--from literal=username=$USER\u NAME--from literal=password=$passwrd 我已经编写了一个执行此脚本的作业 apiVersion: batch/v1 kind: Job metadata: name: "sagdfghd" spec: template:
#/bin/bash
kubectl创建机密的通用mysecret--from literal=username=$USER\u NAME--from literal=password=$passwrd
我已经编写了一个执行此脚本的作业
apiVersion: batch/v1
kind: Job
metadata:
name: "sagdfghd"
spec:
template:
spec:
containers:
- name: sagdfghd
image: {{ .Values.jobs.dockerRegistry }}
command: ["sh", "-c", {{ .Files.Get "scripts/myscript.sh" | quote }} ]
但由于脚本在容器中运行,因此无法找到kubectl命令
你知道我如何运行这个脚本吗
TIA什么图像是
{{.Values.jobs.dockerRegistry}
解析的,它是否安装了kubectl
工具?它很可能没有安装kubectl,因此您必须在Dockerfile中添加kubectl安装说明。这些说明将取决于您的基本Docker映像是什么。请参阅以下链接:
什么图像是
{{.Values.jobs.dockerRegistry}
解析的,它是否安装了kubectl
工具?它很可能没有安装kubectl,因此您必须在Dockerfile中添加kubectl安装说明。这些说明将取决于您的基本Docker映像是什么。请参阅以下链接:
@Erics提供了Staples,它有助于解决问题:
{{.Values.jobs.dockerRegistry}}解析为什么图像
它安装了kubectl工具吗
它很可能没有安装kubectl,因此您必须在Dockerfile中添加kubectl安装说明。这些说明将取决于您的基本Docker映像是什么
由于作业创建的Pod将附加一个ServiceAccount,因此容器中运行的kubectl工具将通过ServiceAccount令牌调用它运行的集群,并且实际上将在集群而不是容器中创建机密(假设它具有正确的RBAC权限)
试试看。从容器调用kube apiserver(例如通过kubectl)并不少见
旁注:在容器中创建一个秘密对象是毫无意义的 @Erics提供了Staples,它有助于解决问题:
{{.Values.jobs.dockerRegistry}}解析为什么图像
它安装了kubectl工具吗
它很可能没有安装kubectl,因此您必须在Dockerfile中添加kubectl安装说明。这些说明将取决于您的基本Docker映像是什么
由于作业创建的Pod将附加一个ServiceAccount,因此容器中运行的kubectl工具将通过ServiceAccount令牌调用它运行的集群,并且实际上将在集群而不是容器中创建机密(假设它具有正确的RBAC权限)
试试看。从容器调用kube apiserver(例如通过kubectl)并不少见
旁注:在容器中创建一个秘密对象是毫无意义的 不,它不是,我也不能安装它。我在看我们是否可以在k8s环境中运行这个脚本,而不是在容器中运行它。因为我想在k8s env中创建secret,而不是在某个容器中..因为由
作业创建的Pod
将有一个servicecomport
附加到它,所以容器中运行的kubectl工具将通过servicecomport
令牌调用它运行的集群,实际上,它将在集群中创建Secret
,而不是容器(假设它具有正确的RBAC权限)。试试看。从容器调用kube apiserver(例如通过kubectl)并不少见。旁注:在容器中创建一个Secret
对象是毫无意义的。@Sudhir你是如何修复它的?您是否在docker文件中安装了kubectl
。我也有类似的情况/challenge@Shammir我没有使用命令行,而是使用kubernates的rest API来创建资源。没有,我也无法安装它。我正在寻找是否可以在k8s env中运行此脚本,而不是在容器中运行它。因为我想在k8s env中创建secret,而不是在某个容器中..因为由作业创建的Pod
将有一个servicecomport
附加到它,所以容器中运行的kubectl工具将通过servicecomport
令牌调用它运行的集群,实际上,它将在集群中创建Secret
,而不是容器(假设它具有正确的RBAC权限)。试试看。从容器调用kube apiserver(例如通过kubectl)并不少见。旁注:在容器中创建一个Secret
对象是毫无意义的。@Sudhir你是如何修复它的?您是否在docker文件中安装了kubectl
。我也有类似的情况/challenge@Shammir我没有使用命令行,而是使用kubernates的RESTAPI来创建资源。