2.4. 为远程访问生成额外的 kubeconfig 文件


如果需要更多主机名或 IP 地址超过默认的远程访问文件提供,您可以生成额外的 kubeconfig 文件。

重要

您必须重启 MicroShift 才能实现配置更改。

先决条件

  • 您已为 MicroShift 创建了一个 config.yaml

流程

  1. 可选: 您可以显示 config.yaml 的内容。运行以下命令:

    $ cat /etc/microshift/config.yaml
    Copy to Clipboard Toggle word wrap
  2. 可选: 您可以显示远程访问 kubeconfig 文件的内容。运行以下命令:

    $ cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
    Copy to Clipboard Toggle word wrap
    重要

    其他远程访问 kubeconfig 文件必须包含 MicroShift config.yaml 文件中列出的服务器名称之一。其他 kubeconfig 文件还必须使用相同的 CA 进行验证。

  3. 要为额外的 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
    Copy to Clipboard Toggle word wrap

    1
    主机名
    2
    DNS 名称
    3
    IP 地址或范围
  4. 运行以下命令,重启 MicroShift 以应用配置更改并自动生成您需要的 kubeconfig 文件:

    $ sudo systemctl restart microshift
    Copy to Clipboard Toggle word wrap
  5. 要检查额外的远程访问 kubeconfig 文件的内容,请将 config.yaml 中列出的名称或 IP 地址插入到 cat 命令中。例如,以下示例命令中使用 alt-name-1

    $ cat /var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
    Copy to Clipboard Toggle word wrap
  6. 选择 kubeconfig 文件,以使用其中包含您要用于连接集群的 SAN 或 IP 地址。在本例中,在 cluster.server 字段中包含'alt-name-1' 的 kubeconfig 是正确的文件。

    其他 kubeconfig 文件的内容示例

    clusters:
    - cluster:
        certificate-authority-data: <base64 CA>
        server: https://alt-name-1:6443 
    1
    Copy to Clipboard Toggle word wrap

    1
    /var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig 文件值来自 apiServer.subjectAltNames 配置值。
注意

所有这些参数都作为通用名称(CN)和主题备用名称(SAN)包含在 API 服务器的外部服务证书中。

2.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
    Copy to Clipboard Toggle word wrap

验证

  • user@microshift 的身份,输入以下命令验证 MicroShift 是否正在运行:

    [user@microshift]$ oc get all -A
    Copy to Clipboard Toggle word wrap

2.4.2. 远程访问 MicroShift 集群

使用以下步骤通过 kubeconfig 文件从远程工作站访问 MicroShift 集群。

user@workstation 登录用于远程访问主机计算机。该流程中的 <user> 值是 user@workstation 登录到 MicroShift 主机所使用的用户名。

先决条件

  • 已安装 oc 二进制文件。
  • user@microshift 已从本地主机打开防火墙。

流程

  1. user@workstation 的身份,运行以下命令,创建 ~/.kube/ 文件夹:

    [user@workstation]$ mkdir -p ~/.kube/
    Copy to Clipboard Toggle word wrap
  2. user@workstation 的身份,运行以下命令来为您的 MicroShift 主机的主机名设置变量:

    [user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of MicroShift machine>
    Copy to Clipboard Toggle word wrap
  3. user@workstation 的身份,通过运行以下命令复制生成的 kubeconfig 文件,其中包含您要从运行 MicroShift 的 RHEL 机器连接到您的本地机器的主机名或 IP 地址:

    [user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
    Copy to Clipboard Toggle word wrap
注意

要为此步骤生成 kubeconfig 文件,请参阅附加资源部分中的"生成额外 kubeconfig 文件以进行远程访问"。

  1. user@workstation 的身份,运行以下命令来更新 ~/.kube/config 文件的权限:

    $ chmod go-r ~/.kube/config
    Copy to Clipboard Toggle word wrap

验证

  • user@workstation 的身份,输入以下命令验证 MicroShift 是否正在运行:

    [user@workstation]$ oc get all -A
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat