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