绑定自定义K8s集群
在“Kubernetes”、“虚拟机+Kubernetes”类型环境下使用容器部署方式创建组件前,您需要先为该环境绑定集群。
“Kubernetes”类型的非高可用环境和“虚拟机+Kubernetes”类型环境支持绑定自定义K8s集群。
前提条件
- 待操作环境已创建,请参考:
- 为环境绑定自定义K8s集群,需要已经创建yaml格式的kubeconfig文件,请参考kubeconfig文件说明。
操作步骤
- 登录ServiceStage控制台。
- 选择“环境管理”,进入“环境管理”页面。
- 单击待操作环境名称,进入环境“概览”页面。
- 选择“计算”资源类型下的资源名称“集群”。
- 单击“立即绑定”。
- “集群来源”选择“自定义 K8s 集群”。
- 输入“集群名称”。
长度为2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾,英文字母区分大小写。
- 单击“导入YAML文件”,导入已经准备好的YAML格式的kubeconfig文件。
- 单击“确定”。
后续操作
- 在“概览”页面,您可以参考编辑绑定的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。
| 参数 | 是否必选 | 参数类型 | 描述 | 取值示例 |
|---|---|---|---|---|
| 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 of objects | 上下文列表,关联集群、用户和默认命名空间,请参考表6。 | - |
| 参数 | 是否必选 | 参数类型 | 描述 | 取值示例 |
|---|---|---|---|---|
| name | 是 | String | 集群名称(唯一标识)。 | my-cluster |
| cluster | 是 | Object | 集群具体连接信息,请参考表3。 | - |
| 参数 | 是否必选 | 参数类型 | 描述 | 取值示例 |
|---|---|---|---|---|
| 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 |
| 参数 | 是否必选 | 参数类型 | 描述 | 取值示例 |
|---|---|---|---|---|
| name | 是 | String | 用户的唯一标识名称(自定义)。 | admin-user |
| user | 否 | Object | 定义用户身份认证的凭据和方式,支持多种认证机制(如证书、Token、动态插件等),请参考表5。 | - |
| 参数 | 是否必选 | 参数类型 | 描述 | 取值示例 |
|---|---|---|---|---|
| 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 |
| 参数 | 是否必选 | 参数类型 | 描述 | 取值示例 |
|---|---|---|---|---|
| name | 是 | String | 上下文的唯一标识名称(自定义)。 | dev-context |
| context | 是 | Object | 用于将集群(cluster)、用户(user)和命名空间(namespace)绑定在一起,定义了一个具体的“操作环境”。通过切换不同的 context,可以快速在不同的集群、用户身份或命名空间之间切换。请参考表7。 | - |
编辑绑定的K8s自定义集群
- 登录ServiceStage控制台。
- 选择“环境管理”,进入“环境管理”页面。
- 单击待操作环境名称,进入环境“概览”页面。
- 选择“计算”资源类型下的资源名称“集群”。
- 单击“编辑集群”。
- 修改“集群名称”。
长度为2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾,英文字母区分大小写。
- 单击“导入YAML文件”,导入已经准备好的YAML格式的kubeconfig文件。
- 单击“确定”。