簡體   English   中英

在Helm安裝中運行包含kubectl命令的運行腳本

[英]Running script containing kubectl commands in helm installation

我有一個包含幾個kubectl命令的shell腳本,我需要在頭盔安裝過程中執行它。

#!/bin/bash kubectl create secret generic mysecret --from-literal=username=$USER_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映像是什么。 請參閱以下鏈接:

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl

@ericstaples提供了安裝文檔的鏈接 ,它有助於解決問題:

{{.Values.jobs.dockerRegistry}}解析為什么圖像,並在其上安裝了kubectl工具?

它很可能沒有安裝kubectl,因此您必須在Dockerfile中添加kubectl安裝說明。 這些說明將取決於您的基本Docker映像是什么。

由於作業創建的Pod會附加一個ServiceAccount,因此在容器中運行的kubectl工具將通過ServiceAccount令牌調用運行該集群的集群,實際上會在集群中創建Secret,而不是容器(假設它具有正確的RBAC權限)。

試試看。 從容器調用kube-apiserver(例如通過kubectl)並不罕見。

旁注:在容器中創建Secret對象絕對沒有任何意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM