3.4. 为远程访问生成额外的 kubeconfig 文件
如果您需要比默认远程访问文件提供更多的主机名或 IP 地址,您可以生成额外的 kubeconfig
文件。
您必须重启 MicroShift 才能实现配置更改。
先决条件
-
您已为 MicroShift 创建了
config.yaml
。
流程
可选:您可以显示
config.yaml
的内容。运行以下命令:$ cat /etc/microshift/config.yaml
可选:您可以显示远程访问
kubeconfig
文件的内容。运行以下命令:$ cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
重要其他远程访问
kubeconfig
文件必须包含红帽构建的 MicroShiftconfig.yaml
文件中列出的服务器名称之一。其他kubeconfig
文件还必须使用相同的 CA 进行验证。要为其他 DNS 名称 SAN 或外部 IP 地址生成额外的
kubeconfig
文件,请将您需要的条目添加到apiServer.subjectAltNames
字段。在以下示例中,使用的 DNS 名称为alt-name-1
,IP 地址为1.2.3.4
。带有额外身份验证值的
config.yaml
示例dns: baseDomain: example.com node: hostnameOverride: "microshift-rhel9" 1 nodeIP: 10.0.0.1 apiServer: subjectAltNames: - alt-name-1 2 - 1.2.3.4 3
运行以下命令,重启 MicroShift 以应用配置更改并自动生成您需要的
kubeconfig
文件:$ sudo systemctl restart microshift
要检查其他远程访问
kubeconfig
文件的内容,请将config.yaml
中列出的名称或 IP 地址插入到cat
命令中。例如,以下示例命令中使用alt-name-1
:$ cat /var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
选择
kubeconfig
文件,其中包含您要用来连接集群的 SAN 或 IP 地址。在本例中,cluster.server
字段中包含'alt-name-1' 的kubeconfig
是正确的文件。额外
kubeconfig
文件的内容clusters: - cluster: certificate-authority-data: <base64 CA> server: https://alt-name-1:6443 1
- 1
/var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
文件值来自apiServer.subjectAltNames
配置值。
所有这些参数都作为通用名称(CN)和主题替代名称(SAN)包含在 API 服务器的外部提供证书中。
3.4.1. 打开防火墙以远程访问 MicroShift 集群
使用以下步骤打开防火墙,以便远程用户可以访问 MicroShift 集群。必须在 workstation 用户可以访问集群前完成此步骤。
对于此过程,user@microshift
是 MicroShift 主机上的用户,负责设置该机器,使其可以被单独的工作站上的远程用户访问。
先决条件
-
已安装
oc
二进制文件。 - 您的帐户具有集群管理特权。
流程
在 MicroShift 主机上以
user@microshift
的身份,运行以下命令来打开 Kubernetes API 服务器的防火墙端口 (6443/tcp
):[user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
验证
以
user@microshift
的身份,输入以下命令验证 MicroShift 是否正在运行:[user@microshift]$ oc get all -A
3.4.2. 远程访问 MicroShift 集群
使用以下步骤,使用 kubeconfig
文件从远程位置访问 MicroShift 集群。
user@workstation
登录用于远程访问主机计算机。该流程中的 <user>
值是 user@workstation
登录到 MicroShift 主机所使用的用户名。
先决条件
-
已安装
oc
二进制文件。 -
user@microshift
已打开来自本地主机的防火墙。
流程
以
user@workstation
的身份,如果 Red Hat Enterprise Linux (RHEL)机器没有,使用以下命令创建一个~/.kube/
文件夹:[user@workstation]$ mkdir -p ~/.kube/
以
user@workstation
的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:[user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
以
user@workstation
的身份,运行以下命令来复制生成的kubeconfig
文件,该文件包含您要从运行 MicroShift 的 RHEL 机器连接到本地机器的主机名或 IP 地址:[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
注意要为此步骤生成
kubeconfig
文件,请参阅为远程访问生成额外的 kubeconfig 文件。以
user@workstation
的身份,运行以下命令来更新~/.kube/config
文件的权限:$ chmod go-r ~/.kube/config
验证
以
user@workstation
的身份,输入以下命令验证 MicroShift 是否正在运行:[user@workstation]$ oc get all -A