绑定自定义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 |
上下文列表,关联集群、用户和默认命名空间,请参考表7。 |
- |
参数 |
是否必选 |
参数类型 |
描述 |
取值示例 |
---|---|---|---|---|
name |
是 |
String |
集群名称(唯一标识)。 |
my-cluster |
cluster |
是 |
Array |
集群具体连接信息,请参考表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 |
否 |
Array of objects |
定义用户身份认证的凭据和方式,支持多种认证机制(如证书、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 |
exec |
否 |
Object |
动态认证插件配置,请参考表6。 |
- |
参数 |
是否必选 |
参数类型 |
描述 |
取值示例 |
---|---|---|---|---|
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"} |
参数 |
是否必选 |
参数类型 |
描述 |
取值示例 |
---|---|---|---|---|
name |
是 |
String |
上下文的唯一标识名称(自定义)。 |
dev-context |
context |
是 |
Array |
用于将集群(cluster)、用户(user)和命名空间(namespace)绑定在一起,定义了一个具体的“操作环境”。通过切换不同的 context,可以快速在不同的集群、用户身份或命名空间之间切换。请参考表8。 |
- |
编辑绑定的K8s自定义集群
- 登录ServiceStage控制台。
- 选择“环境管理”,进入“环境管理”页面。
- 单击待操作环境名称,进入环境“概览”页面。
- 选择“计算”资源类型下的资源名称“集群”。
- 单击“编辑集群”。
- 修改“集群名称”。
长度为2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾,英文字母区分大小写。
- 单击“导入YAML文件”,导入已经准备好的YAML格式的kubeconfig文件。
- 单击“确定”。