Ass*_*lov 39 kubernetes kubectl
我有一个admin.conf文件,其中包含有关群集的信息,以便以下命令正常工作:
kubectl --kubeconfig ./admin.conf get nodes
Run Code Online (Sandbox Code Playgroud)
如何config在一个命令中将kubectl作为默认值使用此文件中的群集,用户和身份验证?我只看到单独的set-cluster,set-credentials,set-context,use-context等.我想在运行时得到相同的输出:
kubectl get nodes
Run Code Online (Sandbox Code Playgroud)
Gle*_*eeb 35
以下是有关如何配置kubectl的官方文档
http://kubernetes.io/docs/user-guide/kubeconfig-file/
你有几个选择,特别是这个问题,你可以复制你admin.conf的~/.kube/config
sta*_*eep 13
我发现最好的方法是使用环境变量:
export KUBECONFIG=/path/to/admin.conf
Run Code Online (Sandbox Code Playgroud)
Exe*_*ero 12
在答案非常可靠和信息丰富之前,我会尝试在这里添加我的 2 美分
kubeconfig文件知道其优先级如果您使用的是kubectl,这里是在确定使用哪个kubeconfig文件时生效的首选项。
--kubeconfig标志,如果指定KUBECONFIG环境变量(如果指定)$HOME/.kube/config文件有了这个,您可以轻松地覆盖您根据命令使用的kubeconfig文件kubectl:
#
# using --kubeconfig flag
#
kubectl get pods --kubeconfig=file1
kubectl get pods --kubeconfig=file2
#
# or
# using `KUBECONFIG` environment variable
#
KUBECONFIG=file1 kubectl get pods
KUBECONFIG=file2 kubectl get pods
#
# or
# merging your kubeconfig file w/ $HOME/.kube/config (w/ cp backup)
#
cp $HOME/.kube/config $HOME/.kube/config.backup.$(date +%Y-%m-%d.%H:%M:%S)
KUBECONFIG= $HOME/.kube/config:file2:file3 kubectl config view --merge --flatten > \
~/.kube/merged_kubeconfig && mv ~/.kube/merged_kubeconfig ~/.kube/config
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2
Run Code Online (Sandbox Code Playgroud)
注意:该--minify标志允许我们仅提取有关该上下文的信息,并且该--flatten标志允许我们保持凭据未编辑。
kubectl get pods --kubeconfig=/path/to/admin.conf
#
# or:
#
KUBECONFIG=/path/to/admin.conf kubectl get pods
#
# or:
#
cp $HOME/.kube/config $HOME/.kube/config.backup.$(date)
KUBECONFIG= $HOME/.kube/config:/path/to/admin.conf kubectl config view --merge --flatten > \
~/.kube/merged_kubeconfig && mv ~/.kube/merged_kubeconfig ~/.kube/config
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2
Run Code Online (Sandbox Code Playgroud)
尽管此优先级列表未在文档中正式指定,但已编入此处。如果您正在为 Kubernetes 开发客户端工具,您应该考虑使用cli-runtime库,它将为您的程序带来标准--kubeconfig标志和$KUBECONFIG检测。
参考文章: https : //ahmet.im/blog/mastering-kubeconfig/
Jef*_*ley 11
我只是通过.bashrc为我的开发和生产环境将kubectl命令别名为单独的命令
alias k8='kubectl'
alias k8prd='kubectl --kubeconfig ~/.kube/config_prd.conf'
Run Code Online (Sandbox Code Playgroud)
我更喜欢这种方法,因为它需要我为每个命令定义环境..而使用环境变量可能会导致您在错误的环境中运行命令
我将所有集群配置命名为.kubeconfig,它位于项目目录中。
然后在.bashrc或.bash_profile我有以下导出:
export KUBECONFIG=.kubeconfig:$HOME/.kube/config
Run Code Online (Sandbox Code Playgroud)
这样当我在项目目录中时kubectl将加载本地.kubeconfig. 希望有帮助
| 归档时间: |
|
| 查看次数: |
51810 次 |
| 最近记录: |