配置kubectl

This commit is contained in:
huanqing.shao
2019-10-11 09:24:35 +08:00
parent cf295dd746
commit 2e02c04092
3 changed files with 73 additions and 5 deletions

View File

@ -201,7 +201,7 @@ module.exports = {
collapsable: false,
children: [
'install-kubectl',
// 'config-kubectl',
'config-kubectl',
'install-k8s-dashboard',
'install-dashboard',
'install-dashboard-upgrade'

View File

@ -28,8 +28,76 @@ meta:
kubectl的版本号必须大于等于集群的版本号执行命令 `kubectl version` 可查看 kubectl 版本
:::
## 创建配置文件
## KUBECONFIG环境变量
## 创建第二个配置文件
可以在 `KUBECONFIG` 环境变量中配置多个 kubeconfig 文件
* 在 Linux 和 MAC 中,使用英文冒号 `:` 分隔
* 在 Windows 中,使用英文分号 `;` 分隔
## 设置KUBECONFIG环境变量
`KUBECONFIG` 指定了多个 kubeconfig 文件时kubectl会自动合并所有文件中的配置内容。您可以将每个集群的访问信息存储到一个文件中并将该文件加入到 `KUBECONFIG` 环境变量中。
`KUBECONFIG` 环境变量并不是必须配置的,如果该环境变量不存在, kubectl 将使用默认位置的 kubeconfig 文件,即 `$HOME/.kube/config`
## kubeconfig文件的合并
前面提到kubectl会自动合并 `KUBECONFIG` 指定的多个文件,执行以下指令,可以查看最终生效的结果:
``` sh
kubectl config view
```
合并时的规则如下:
* 如果执行 kubectl 指令时,指定了 `--kubeconfig` 参数,则只使用该参数指定的 kubeconfig 文件,不会进行合并
* 否则,在指定了环境变量 `KUBECONFIG` 的情况下,该环境变量中的所有文件将被合并使用:
* 对于不能正常解析的文件,提示错误信息
* 当执行 `kubectl config use-context` 指令后,在第一个文件中保存 `current-context` 字段
* 合并过程忽略冲突。例如:如果多个文件中都定义了 `red-user`,将只使用列表中第一个定义了 `red-user` 的内容,所有后面定义的 `red-user` 都将被忽略
* 如果既没指定 `--kubeconfig` 参数,又没指定 `KUBECONFIG` 环境变量,则使用默认的配置文件 `$HOME/.kube/config`,此时也无需合并
## 切换当前访问的集群
当您通过 `KUBECONFIG` 环境变量指定了多个集群的访问配置文件时,执行 `kubectl config view` 指令,输出结果如下所示:
* 其中 `contexts` 字段包含了多个访问集群的 `上下文`,每个上下文指定了一个 `name`,并指定了该 `上下文` 要访问的集群名称`cluster`,集群中的名称空间`namespace`,使用哪个用户去访问`user`。
* `current-context` 字段指定了当前生效的 `上下文`
``` yaml {6,11,21,22}
contexts:
- context:
cluster: development
namespace: frontend
user: developer
name: dev-frontend
- context:
cluster: development
namespace: ramp
user: developer
name: dev-ramp-up
- context:
cluster: development
namespace: storage
user: developer
name: dev-storage
- context:
cluster: scratch
namespace: default
user: experimenter
name: exp-scratch
current-context: dev-frontend
kind: Config
users:
...
```
执行 `kubectl config get-contexts` 命令,可以查看可用的 `上下文` 列表,其中第一列带 `*` 的为当前使用的 `上下文`,输出如下所示:
``` {3}
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
dev-frontend development developer frontend
* dev-ramp-up development developer ramp
dev-storage development developer storage
exp-scratch scratch experimenter default
```
执行 `kubectl config use-context dev-storage` 命令,可以切换到另外一个 `上下文`

View File

@ -4,7 +4,7 @@ layout: LearningLayout
description: Kubernetes教程_本文档可帮助您诊断部署到Kubernetes中的应用程序所出现的问题。如果仍然解决不了请加本文末尾的QQ群答疑。
meta:
- name: keywords
content: Kubernetes教程,K8S教程,诊断应用程序,问题诊断
content: Kubernetes教程,K8S教程,集群故障,问题诊断
---
# 诊断集群问题