更新时间:2025-08-26 GMT+08:00

绑定自定义K8s集群

“Kubernetes”“虚拟机+Kubernetes”类型环境下使用容器部署方式创建组件前,您需要先为该环境绑定集群。

“Kubernetes”类型的非高可用环境和“虚拟机+Kubernetes”类型环境支持绑定自定义K8s集群。

前提条件

操作步骤

  1. 登录ServiceStage控制台
  2. 选择“环境管理”,进入“环境管理”页面。
  3. 单击待操作环境名称,进入环境“概览”页面。
  4. 选择“计算”资源类型下的资源名称“集群”
  5. 单击“立即绑定”
  6. “集群来源”选择“自定义 K8s 集群”
  7. 输入“集群名称”

    长度为2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾,英文字母区分大小写。

  8. 单击“导入YAML文件”,导入已经准备好的YAML格式的kubeconfig文件。
  9. 单击“确定”

后续操作

  • “概览”页面,您可以参考编辑绑定的K8s自定义集群,编辑“Kubernetes”类型的非高可用环境或“虚拟机+Kubernetes”类型环境已绑定的自定义K8s集群。
  • 为环境绑定的集群,如果不再使用,您可以参考解绑集群进行解绑。

kubeconfig文件说明

请务必仅使用来源可靠的kubeconfig文件,防止导致恶意代码执行或文件暴露。

使用kubeconfig文件将一个原生的Kubernetes集群纳入管理是一种常见的方法。kubeconfig文件包含了客户端与Kubernetes集群通信所需的配置信息,包括:集群信息、用户认证信息和上下文信息。

kubeconfig文件的结构示例如下:

apiVersion: v1
kind: Config
preferences: {}
current-context: dev-context
clusters:
- name: my-cluster
  cluster:
    server: https://api.example.com:6443
    certificate-authority-data: LS0tLS1CRUd...  # Base64编码的CA证书
users:
- name: admin-user
  user:
    client-certificate-data: LS0tLS1CRUd...    # Base64编码的客户端证书
    client-key-data: LS0tLS1CRUd...            # Base64编码的客户端私钥
contexts:
- name: dev-context
  context:
    cluster: my-cluster
    user: admin-user
    namespace: default

kubeconfig文件参数详细说明请参考表1

表1 kubeconfig文件参数说明

参数

是否必选

参数类型

描述

取值示例

apiVersion

String

指定kubeconfig文件的API版本。

v1

kind

String

指定kubeconfig文件的资源类型,固定为Config。

Config

preferences

Object

用户偏好设置(如输出格式、颜色等)。

{}

current-context

String

当前使用的上下文名称。

dev-context

clusters

Array of objects

集群列表,定义集群的地址和认证信息,请参考表2

-

users

Array of objects

用户列表,定义用户的认证方式(如证书、Token、用户名密码、插件等),请参考表4

-

contexts

Array

上下文列表,关联集群、用户和默认命名空间,请参考表7

-

表2 clusters

参数

是否必选

参数类型

描述

取值示例

name

String

集群名称(唯一标识)。

my-cluster

cluster

Array

集群具体连接信息,请参考表3

-

表3 cluster

参数

是否必选

参数类型

描述

取值示例

server

String

集群API Server地址,需包含协议和端口,能够满足公网访问。

https://api.example.com:6443

certificate-authority

String

CA 证书文件路径,与certificate-authority-data二选一。

etc/kubernetes/pki/ca.crt

certificate-authority-data

String

Base64编码的CA证书数据,与certificate-authority 二选一。

LS0tLS1CRUd...

insecure-skip-tls-verify

Boolean

是否跳过TLS验证,仅测试环境使用。

false

表4 users

参数

是否必选

参数类型

描述

取值示例

name

String

用户的唯一标识名称(自定义)。

admin-user

user

Array of objects

定义用户身份认证的凭据和方式,支持多种认证机制(如证书、Token、动态插件等),请参考表5

-

表5 user

参数

是否必选

参数类型

描述

取值示例

client-certificate

String

客户端证书文件路径,与client-certificate-data二选一。

/path/to/client.crt

client-certificate-data

String

Base64 编码的客户端证书数据,与client-certificate二选一。

LS0tLS1CRUd...

client-key

String

客户端私钥文件路径,与client-key-data二选一。

/path/to/client.key

client-key-data

String

Base64 编码的客户端私钥数据,与client-key二选一。

LS0tLS1CRUd...

token

String

静态Token(Bearer Token认证)。

eyJhbGciOiJSUzI1NiIsIm...

username

String

基本认证用户名。

admin

password

String

基本认证密码。

secret

exec

Object

动态认证插件配置,请参考表6

-

表6 exec

参数

是否必选

参数类型

描述

取值示例

apiVersion

String

Exec插件的API版本。

client.authentication.k8s.io/v1beta1

command

String

可执行命令路径。

/usr/bin/aws-iam-authenticator

args

Array of String

命令参数。

["token", "-i", "my-cluster"]

env

Object

环境变量列表。

{name: "AWS_PROFILE", value: "prod"}

表7 contexts

参数

是否必选

参数类型

描述

取值示例

name

String

上下文的唯一标识名称(自定义)。

dev-context

context

Array

用于将集群(cluster)、用户(user)和命名空间(namespace)绑定在一起,定义了一个具体的“操作环境”。通过切换不同的 context,可以快速在不同的集群、用户身份或命名空间之间切换。请参考表8

-

表8 context

参数

是否必选

参数类型

描述

取值示例

cluster

String

关联的集群名称,必须和表2中name的值一致。

my-cluster

user

String

关联的用户名称,必须和表4中的name的值一致。

admin-user

namespace

String

默认命名空间,未指定时使用default。

default

编辑绑定的K8s自定义集群

  1. 登录ServiceStage控制台
  2. 选择“环境管理”,进入“环境管理”页面。
  3. 单击待操作环境名称,进入环境“概览”页面。
  4. 选择“计算”资源类型下的资源名称“集群”
  5. 单击“编辑集群”
  6. 修改“集群名称”

    长度为2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾,英文字母区分大小写。

  7. 单击“导入YAML文件”,导入已经准备好的YAML格式的kubeconfig文件。
  8. 单击“确定”