在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/