Kubernetes-使用不同主机终端访问k8s 集群。

发布于:2024-10-09 ⋅ 阅读:(125) ⋅ 点赞:(0)

2个重点

        1、获取集群的CA证书。

        2、获取经过这个CA认可的客户端证书以及客户端密钥。

        3、通过kubectl 进行绑定,CA绑定集群 user绑定客户端 ,联合绑定为use-text.

一、获取 Kubernetes 集群的 CA 证书、客户端证书和客户端密钥

要获取 Kubernetes 集群的 CA 证书、客户端证书和客户端密钥,通常需要访问集群的配置文件(如 `kubeconfig` 文件)。以下是步骤:

1. **找到 `kubeconfig` 文件**:
   通常,`kubeconfig` 文件位于用户主目录下的 `.kube` 目录中,文件名为 `config`。路径通常是 `~/.kube/config`。

2. **查看 `kubeconfig` 文件**:
   打开 `kubeconfig` 文件,找到 `clusters`、`users` 和 `contexts` 部分。每个部分包含相关的证书和密钥信息。

3. **提取证书和密钥**:
   在 `kubeconfig` 文件中,找到以下字段并提取其值:
   - `certificate-authority-data`:CA 证书(Base64 编码)
   - `client-certificate-data`:客户端证书(Base64 编码)
   - `client-key-data`:客户端密钥(Base64 编码)

4. **解码证书和密钥**:
   使用 `base64` 命令解码这些证书和密钥,并保存到文件中。例如:

# 解码 CA 证书
echo "<certificate-authority-data>" | base64 --decode > ca.crt

# 解码客户端证书
echo "<client-certificate-data>" | base64 --decode > client.crt

# 解码客户端密钥
echo "<client-key-data>" | base64 --decode > client.key

二、通过kubectl进行绑定。

要在 `kubectl` 中添加一个新的 context,可以使用 `kubectl config set-context` 命令。以下是详细步骤:

1. 设置集群信息:

kubectl config set-cluster <cluster-name> --server=<server-url> --certificate-authority=<path-to-ca-cert>

2. 设置用户信息:

kubectl config set-credentials <user-name> --client-certificate=<path-to-client-cert> --client-key=<path-to-client-key>

3. 设置 context:

kubectl config set-context <context-name> --cluster=<cluster-name> --user=<user-name>

4. 切换到新添加的 context:

kubectl config use-context <context-name>

例如,假设你有一个集群名为 `my-cluster`,服务器 URL 为 `https://my-cluster-server`,CA 证书路径为 `/path/to/ca.crt`,用户名为 `my-user`,客户端证书路径为 `/path/to/client.crt`,客户端密钥路径为 `/path/to/client.key`,并且你想创建一个 context 名为 `my-context`,可以按如下步骤操作:

kubectl config set-cluster my-cluster --server=https://my-cluster-server --certificate-authority=/path/to/ca.crt
kubectl config set-credentials my-user --client-certificate=/path/to/client.crt --client-key=/path/to/client.key
kubectl config set-context my-context --cluster=my-cluster --user=my-user
kubectl config use-context my-context

这样就可以成功添加并切换到新的 context。