kubernetes - 从命令行配置客户端命令

标签 kubernetes kubectl ibm-cloud-private

在IBM Cloud Private EE中,我需要转到Web UI User > Configure client,复制kubectl config命令,然后在客户机上运行这5个命令。

我在5个VM上部署了IBM Cloud private EE,并且可以访问主节点。我想知道是否有一种方法可以直接从docker容器中捕获这些kubectl config命令,而无需转到Web UI。

例如:我不想从Google下载kubectl客户端(因为我只想使用ICP容器中相同的kubectl版本),所以我使用了以下命令从容器本身获取它。

docker run --rm -v $(pwd):/data -e LICENSE=accept \
   ibmcom/icp-inception:2.1.0.1-ee \
   cp -r /usr/local/bin/kubectl /data

然后,将其复制到所有VM guest虚拟机,以便可以从任何guest虚拟机访问kubectl
chmod +x kubectl
for host in $(awk '/192.168.142/ {print $3}' /etc/hosts)
do
   scp kubectl $host:/bin
done

其中-192.168.142是我的VM guest虚拟机的子网。

但是,我无法弄清楚如何在不访问Web UI的情况下获取Configure Client命令。我需要它来自动化客户端kubectl命令,以便通过简单的脚本为kubectl命令准备好环境。

最佳答案

您应该使用 Vagrant 来自动执行这些步骤。

例如, IBM/deploy-ibm-cloud-private/Vagrantfile 具有以下部分:

install_kubectl = <<SCRIPT
echo "Pulling #{image_repo}/kubernetes:v#{k8s_version}..."
sudo docker run -e LICENSE=#{license} --net=host -v /usr/local/bin:/data #{image_repo}/kubernetes:v#{k8s_version} cp /kubectl /data &> /dev/null
kubectl config set-credentials icpadmin --username=admin --password=admin &> /dev/null
kubectl config set-cluster icp --server=http://127.0.0.1:8888 --insecure-skip-tls-verify=true &> /dev/null
kubectl config set-context icp --cluster=icp --user=admin  --namespace=default &> /dev/null
kubectl config use-context icp &> /dev/null
SCRIPT

Kubernetes, IBM Cloud Private, and Vagrant, oh my! 的“Tim Pouyer”中查看更多信息。

关于kubernetes - 从命令行配置客户端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48600776/

相关文章:

kubernetes - 如何自动删除 CronJob 创建的已完成的 Kubernetes 作业?

ibm-cloud-private - ibm-eventstreams-dev 未部署到 IBM Cloud Private

kubernetes - ICP 2.1.0.3安装超时:失败-重试:WAITINGkube-dns启动

kubernetes - kubectl 错误 : You must be logged in to the server (Unauthorized)

kubernetes - 在 k3s 上使用 traefik ingress 生成重定向?

nginx - Kubernetes - Prometheus 缺少所有 NGINX 入口指标?

docker - 容器创建停留在ContainerCreating状态

kubernetes - 需要为 kubectl edit 设置 sublime

go - 如何在kubernetes中过滤完成的作业

kubernetes - progressDeadlineSeconds 未正确超时