kubectl config - Kubernetes 配置管理命令
kubectl config 是 Kubernetes 中用于管理 kubeconfig 配置文件的命令,它可以查看、修改和切换集群、上下文和用户配置,是多集群管理的关键工具。
基本语法
bash
kubectl config <SUBCOMMAND> [options]核心子命令
| 子命令 | 功能 | 示例 |
|---|---|---|
view | 查看当前配置 | kubectl config view |
use-context | 切换上下文 | kubectl config use-context prod-cluster |
current-context | 显示当前上下文 | kubectl config current-context |
get-contexts | 列出所有上下文 | kubectl config get-contexts |
set-context | 修改上下文配置 | kubectl config set-context --current --namespace=kube-system |
set-cluster | 设置集群配置 | kubectl config set-cluster my-cluster --server=https://api.my-cluster:6443 |
set-credentials | 设置用户凭证 | kubectl config set-credentials admin --client-certificate=admin.crt --client-key=admin.key |
配置文件位置
默认配置文件路径:~/.kube/config
可以通过设置 KUBECONFIG 环境变量指定其他路径:
bash
export KUBECONFIG=~/.kube/config-prod典型使用场景
1. 多集群管理
bash
# 列出所有可用上下文(集群+用户+命名空间组合)
kubectl config get-contexts
# 切换上下文(集群)
kubectl config use-context dev-cluster
# 查看当前使用的上下文
kubectl config current-context2. 命名空间管理
bash
# 修改当前上下文的默认命名空间
kubectl config set-context --current --namespace=kube-system
# 验证当前命名空间
kubectl config view --minify | grep namespace:3. 集群配置管理
bash
# 添加新集群配置
kubectl config set-cluster prod-cluster \
--server=https://api.prod-cluster:6443 \
--certificate-authority=ca.crt
# 查看集群配置详情
kubectl config view -o jsonpath='{.clusters[?(@.name=="prod-cluster")]}'4. 用户凭证管理
bash
# 添加新用户凭证
kubectl config set-credentials admin-user \
--client-certificate=admin.crt \
--client-key=admin.key
# 使用用户名密码认证
kubectl config set-credentials dev-user --username=dev --password=secret高级用法
1. 合并多个配置文件
bash
# 临时合并多个配置
export KUBECONFIG=~/.kube/config:~/.kube/config-prod
kubectl config view --merge --flatten > ~/.kube/config-merged
# 使用合并后的配置
cp ~/.kube/config-merged ~/.kube/config2. 配置自动补全
bash
# 为 kubectl config 启用命令补全
source <(kubectl completion bash)
complete -F __start_kubectl kubectl3. 安全操作
bash
# 删除集群配置
kubectl config delete-cluster old-cluster
# 删除用户凭证
kubectl config delete-credentials old-user
# 删除上下文
kubectl config delete-context old-context注意事项
配置文件结构:
- clusters:集群列表(API server 地址、CA 证书等)
- users:用户认证信息
- contexts:关联集群、用户和命名空间
- current-context:当前使用的上下文
安全建议:
- 不要将 kubeconfig 文件提交到版本控制系统
- 定期轮换凭证和证书
- 使用最小权限原则配置 RBAC
常见问题:
- 证书过期:
Unable to connect to the server: x509: certificate has expired or is not yet valid - 上下文不存在:
error: no context exists with the name: "nonexistent-context" - 权限不足:
error: You must be logged in to the server (Unauthorized)
- 证书过期:
最佳实践
多环境管理:
bash# 为不同环境创建别名 alias kprod='kubectl config use-context prod-cluster' alias kdev='kubectl config use-context dev-cluster'配置验证:
bash# 验证配置是否正确 kubectl config view --raw -o json | jq . # 测试集群连接 kubectl cluster-info备份配置:
bash# 定期备份 kubeconfig cp ~/.kube/config ~/.kube/config.bak.$(date +%Y%m%d)
kubectl config 是 Kubernetes 多集群管理的核心工具,熟练掌握可以极大提高工作效率。建议结合 RBAC 和命名空间等功能,构建安全高效的多集群管理方案。
