You need to enable JavaScript to run this app.
导航
通过 IPv6 访问 API Server
最近更新时间:2024.07.29 21:46:30首次发布时间:2023.12.26 11:50:43

容器服务 VKE 持续增强 IPv6 使用场景,支持通过 IPv6 公网或私网访问 API Server,本文为您详细介绍如何通过 IPv6 访问 API Server。

说明

邀测·申请试用】:通过 VKE 使用 IPv6 相关功能目前处于邀测阶段,如需使用,请提交申请。

背景信息

随着互联网的发展,IPv4 地址已经逐渐枯竭,IPv6 作为下一代互联网协议,具有更加丰富的地址空间和更加安全的特性。为了满足用户对 IPv6 的需求,双栈过渡是最佳选择。

容器服务全面支持 IPv6 双栈能力,目前已经支持搭建 IPv4/IPv6 双栈集群、通过 IPv6 公网或私网访问 API Server、通过 IPv6 公网访问 Server 等能力。

前提条件

使用限制

暂不支持通过容器服务 VKE 为 IPv6 地址绑定公网带宽,若有需要,可前往负载均衡控制台进行配置。

操作步骤

本文将详细介绍通过 IPv6 公网/私网访问 API Server 两个场景的详细操作步骤,可根据实际场景选择。

场景一:通过 IPv6 私网访问 API Server

步骤一:获取 API Server IPv6 私网地址

  1. 登录 容器服务控制台
  2. 在左侧导航栏选择 集群,进入集群列表页面。
  3. 单击目标双栈集群名称,进入集群管理页面。
  4. 进入集群管理页面的 概览 页签,获取 私有访问 中的 IPv6 地址。

alt

步骤二:获取集群私网访问 KubeConfig

  1. 登录 容器服务控制台
  2. 在左侧导航栏选择 集群,进入集群列表页面。
  3. 单击目标双栈集群名称,进入集群管理页面。
  4. 进入集群管理页面的 连接信息 页签,获取 私网访问 Config

alt

步骤三:配置支持 IPv6 的 KubeConfig

修改 步骤二 中获取私网访问 KubeConfig 配置中的 server 地址为 步骤一 中获取的 API Server IPv6 私网地址。并修改certificate-authority-data: XXXXXXXinsecure-skip-tls-verify: true

更新后的 KubeConfig 示例如下:

~ cat ~/.kube/config
  apiVersion: v1
  clusters:
  - cluster:
      server: https://[2406:d440:10b:3e94:9350:ffcb:9503:71a9]:6443 # IPv6 的链接地址,中括号中的内容为 API Server 的 IPv6 私网地址。
      insecure-skip-tls-verify: true                                # 固定值,替换 certificate-authority-data 后的参数。
    name: kubernetes
    contexts:
    - context:
        cluster: kubernetes
        user: "kubernetes-admin"
      name: kubernetes-admin-xxx
  current-context: kubernetes-admin-xxx
  kind: Config
  preferences: {}
  users:
  - name: "kubernetes-admin"user:
     client-certificate-data: {clicert}
     client-key-data: {clikey}

场景二:通过 IPv6 公网访问 API Server

步骤一:开启集群 API Server 公网访问

  1. 登录 容器服务控制台
  2. 在左侧导航栏选择 集群,进入集群列表页面。
  3. 单击目标双栈集群名称,进入集群管理页面。
  4. 单击概览页签中 API Server 公网访问 后面 IPv6 上方的开关按钮,按需设置公网 IP 信息后单击 确定 按钮。

alt

步骤二:开通 CLB IPv6 地址的公网带宽

登录 负载均衡控制台,开通 IPv6 公网带宽。详细介绍参见:管理 IPv6 公网带宽 章节中关于开通 IPv6 公网带宽的详细介绍。

步骤三:获取 API Server IPv6 公网地址

  1. 登录 容器服务控制台
  2. 在左侧导航栏选择 集群,进入集群列表页面。
  3. 单击目标双栈集群名称,进入集群管理页面。
  4. 进入集群管理页面的 概览 页签,获取 API Server 公网访问 中的 IPv6 地址。

alt

步骤四:获取集群公网访问 KubeConfig

  1. 登录 容器服务控制台
  2. 在左侧导航栏选择 集群,进入集群列表页面。
  3. 单击目标双栈集群名称,进入集群管理页面。
  4. 进入集群管理页面的 连接信息 页签,获取 公网访问 Config

alt

步骤五:配置支持 IPv6 的 KubeConfig

修改 步骤四 中获取公网访问 KubeConfig 配置中的 server 地址为 步骤三 中获取的 API Server IPv6 公网地址。并修改certificate-authority-data: XXXXXXXinsecure-skip-tls-verify: true

更新后的 KubeConfig 示例如下:

~ cat ~/.kube/config
  apiVersion: v1
  clusters:
  - cluster:
      server: https://[2400:3200:1600::29e]:6443 # IPv6 的链接地址,中括号中的内容为 API Server 的 IPv6 公网地址。
      insecure-skip-tls-verify: true             # 固定值,替换 certificate-authority-data 后的参数。
    name: kubernetes
    contexts:
    - context:
        cluster: kubernetes
        user: "kubernetes-admin"
      name: kubernetes-admin-xxx
  current-context: kubernetes-admin-xxx
  kind: Config
  preferences: {}
  users:
  - name: "kubernetes-admin"user:
     client-certificate-data: {clicert}
     client-key-data: {clikey}

结果验证

将以上配置 IPv6 的 KubeConfig 文件内容复制到计算机$HOME/.kube/config(kubectl 的默认路径)文件中,然后在 kubectl 客户端执行kubectl get namespace命令。

若能够正常返回集群中的命名空间信息,即表示通过 IPv6 访问 API Server 成功。返回示例如下:

NAME              STATUS   AGE
default           Active   17h
kube-node-lease   Active   17h
kube-public       Active   17h
kube-system       Active   17h