配置kubectl
This commit is contained in:
@ -201,7 +201,7 @@ module.exports = {
|
||||
collapsable: false,
|
||||
children: [
|
||||
'install-kubectl',
|
||||
// 'config-kubectl',
|
||||
'config-kubectl',
|
||||
'install-k8s-dashboard',
|
||||
'install-dashboard',
|
||||
'install-dashboard-upgrade'
|
||||
|
||||
@ -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` 命令,可以切换到另外一个 `上下文`
|
||||
|
||||
@ -4,7 +4,7 @@ layout: LearningLayout
|
||||
description: Kubernetes教程_本文档可帮助您诊断部署到Kubernetes中的应用程序所出现的问题。如果仍然解决不了,请加本文末尾的QQ群答疑。
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes教程,K8S教程,诊断应用程序,问题诊断
|
||||
content: Kubernetes教程,K8S教程,集群故障,问题诊断
|
||||
---
|
||||
|
||||
# 诊断集群问题
|
||||
|
||||
Reference in New Issue
Block a user