簡體   English   中英

配置 kubectl 以到達 docker 上的集群

[英]configure kubectl to reach cluster on docker

我正面臨一個有趣的挑戰,我正在嘗試在具有適當配置的 docker 映像中運行 kubectl 以到達我的集群。

我已經能夠創建圖像, kubecod

    FROM ubuntu:xenial
    
    WORKDIR /project
    
    RUN apt-get update && apt-get install -y \
        curl
    
    RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl
    
    RUN chmod +x ./kubectl
    
    RUN mv ./kubectl /usr/local/bin/kubectl
    
    ENTRYPOINT ["kubectl"]
    #
    CMD ["version"]

當我運行圖像時,容器運行正常,給了我預期的答案。

Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"18+", GitVersion:"v1.18.9-eks-d1db3c", GitCommit:"d1db3c46e55f95d6a7d3e5578689371318f95ff9", GitTreeState:"clean", BuildDate:"2020-10-20T22:18:07Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

但是,我的目標是創建一個將 kubectl 連接到我的節點的圖像。 閱讀文檔,我需要在以下文件夾中添加一個配置文件~/.kube/config

我創建了另一個 Dockerfile 來構建另一個鏡像kubedock ,其中包含正確的配置文件和必要目錄的創建.kube

FROM ubuntu:xenial

#setup a working directory
WORKDIR /project 

RUN apt-get update && apt-get install -y \
    curl

RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl

RUN chmod +x ./kubectl

RUN mv ./kubectl /usr/local/bin/kubectl

#create the directory 
RUN mkdir .kube

#Copy the config file to the .kube folder
COPY ./config .kube

ENTRYPOINT ["kubectl"]

CMD ["cluster-info dump"]

但是,當我在容器中運行新圖像時,出現以下消息


me@os:~/_projects/kubedock$ docker run --name kubecont kubedock
Error: unknown command "cluster-info dump" for "kubectl"
Run 'kubectl --help' for usage.

不知道我錯過了什么。

歡迎任何提示。

干杯。

我不清楚你的 K8s 集群在哪里運行,如果你在 GKE 中運行你的集群,你需要運行類似的東西:

gcloud container clusters get-credentials $CLUSTER_NAME --zone $CLUSTER_ZONE

這將在用戶主目錄中創建 ~/.config/gcloud 文件樹。

在 AWS EKS 上,您需要設置 ~/.aws/credentials 和其他 IAM 設置。

我建議您發布您的 K8s 集群運行位置的詳細信息,我們可以從那里獲取。

PS也許如果您將工作用戶的主機主目錄安裝/復制到 docker 它將起作用。

答案是

    CMD ["cluster-info","dump"]

或者當kubectl命令行中有空格時,用逗號分隔。

暫無
暫無

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

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