8.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-12 - 1.2.3.43 运行以下命令,重启 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:64431 - 1
/var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig文件值来自apiServer.subjectAltNames配置值。
所有这些参数都作为通用名称(CN)和主题替代名称(SAN)包含在 API 服务器的外部提供证书中。
8.4.1. 打开防火墙以远程访问 MicroShift 节点 复制链接链接已复制到粘贴板!
使用以下步骤打开防火墙,以便远程用户能够访问 MicroShift 服务。您必须在 workstation 用户可以访问节点前完成此步骤。
对于此过程,user@microshift 是 MicroShift 主机上的用户,负责设置该机器,使其可以被单独的工作站上的远程用户访问。
先决条件
-
已安装 OpenShift CLI (
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 是否正在运行:$ oc get pods -A输出示例
NAMESPACE NAME READY STATUS RESTARTS AGE default i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr 1/1 Running 0 46m kube-system csi-snapshot-controller-5c6586d546-lprv4 1/1 Running 0 51m openshift-dns dns-default-45jl7 2/2 Running 0 50m openshift-dns node-resolver-7wmzf 1/1 Running 0 51m openshift-ingress router-default-78b86fbf9d-qvj9s 1/1 Running 0 51m openshift-ovn-kubernetes ovnkube-master-5rfhh 4/4 Running 0 51m openshift-ovn-kubernetes ovnkube-node-gcnt6 1/1 Running 0 51m openshift-service-ca service-ca-bf5b7c9f8-pn6rk 1/1 Running 0 51m openshift-storage topolvm-controller-549f7fbdd5-7vrmv 5/5 Running 0 51m openshift-storage topolvm-node-rht2m 3/3 Running 0 50m注意这个示例输出显示基本的 MicroShift 安装。如果安装了可选的 RPM,则输出中也会期望运行这些服务的 pod 的状态。
8.4.2. 远程访问 MicroShift 节点 复制链接链接已复制到粘贴板!
使用以下步骤,使用 kubeconfig 文件从远程位置访问 MicroShift 服务。
user@workstation 登录用于远程访问主机计算机。该流程中的 <user> 值是 user@workstation 登录到 MicroShift 主机所使用的用户名。
先决条件
-
已安装 OpenShift CLI (
oc)。 -
user@microshift已打开来自本地主机的防火墙。 -
您生成了额外的
kubeconfig文件。
流程
以
user@workstation的身份,如果 Red Hat Enterprise Linux (RHEL)机器没有,使用以下命令创建一个~/.kube/文件夹:[user@workstation]$ mkdir -p ~/.kube/以
user@workstation的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:[user@workstation]$ MICROSHIFT_MACHINE=<microshift_hostname>1 - 1
- 将值 & lt;MicroShift_hostname > 替换为运行 的主机的名称或 IP 地址。
以
user@workstation的身份,运行以下命令来复制包含您要从运行 MicroShift 的 RHEL 机器连接到本地机器的主机名或 IP 地址生成的kubeconfig文件:[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config1 - 1
- 将 <user > 替换为您的 SSH 登录凭证。
以
user@workstation的身份,运行以下命令来更新~/.kube/config文件的权限:$ chmod go-r ~/.kube/config
验证
以
user@workstation的身份,输入以下命令验证 MicroShift 是否正在运行:$ oc get pods -A输出示例
NAMESPACE NAME READY STATUS RESTARTS AGE default i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr 1/1 Running 0 46m kube-system csi-snapshot-controller-5c6586d546-lprv4 1/1 Running 0 51m openshift-dns dns-default-45jl7 2/2 Running 0 50m openshift-dns node-resolver-7wmzf 1/1 Running 0 51m openshift-ingress router-default-78b86fbf9d-qvj9s 1/1 Running 0 51m openshift-ovn-kubernetes ovnkube-master-5rfhh 4/4 Running 0 51m openshift-ovn-kubernetes ovnkube-node-gcnt6 1/1 Running 0 51m openshift-service-ca service-ca-bf5b7c9f8-pn6rk 1/1 Running 0 51m openshift-storage topolvm-controller-549f7fbdd5-7vrmv 5/5 Running 0 51m openshift-storage topolvm-node-rht2m 3/3 Running 0 50m注意这个示例输出显示基本的 MicroShift 安装。如果安装了可选的 RPM,则输出中也会期望运行这些服务的 pod 的状态。