当前位置: 首页 > 文档资料 > Kubernetes 指南 >

4.3 Kubernetes-The-Hard-Way - 配置生成配置

优质
小牛编辑
124浏览
2023-12-01

本部分内容将会创建 kubeconfig 配置文件,它们是 Kubernetes 客户端与 API Server 认证与鉴权的保证。

客户端认证配置

本节将会创建用于 kubeletkube-proxy 的 kubeconfig 文件。

schedulercontroller manager 将会通过不安全的端口与 API Server 通信,该端口无需认证,并仅允许来自本地的请求访问。

Kubernetes 公有 IP 地址

每一个 kubeconfig 文件都需要一个 Kuberntes API Server 的 IP 地址。为了保证高可用性,我们将该 IP 分配给 API Server 之前的外部负载均衡器。

查询 kubernetes-the-hard-way 的静态 IP 地址:

  1. KUBERNETES_PUBLIC_ADDRESS=$(gcloud compute addresses describe kubernetes-the-hard-way
  2. --region $(gcloud config get-value compute/region)
  3. --format 'value(address)')

kubelet 配置文件

为了确保 Node Authorizer 授权,Kubelet 配置文件中的客户端证书必需匹配 Node 名字。

为每个 worker 节点创建 kubeconfig 配置:

  1. for instance in worker-0 worker-1 worker-2; do
  2. kubectl config set-cluster kubernetes-the-hard-way
  3. --certificate-authority=ca.pem
  4. --embed-certs=true
  5. --server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443
  6. --kubeconfig=${instance}.kubeconfig
  7. kubectl config set-credentials system:node:${instance}
  8. --client-certificate=${instance}.pem
  9. --client-key=${instance}-key.pem
  10. --embed-certs=true
  11. --kubeconfig=${instance}.kubeconfig
  12. kubectl config set-context default
  13. --cluster=kubernetes-the-hard-way
  14. --user=system:node:${instance}
  15. --kubeconfig=${instance}.kubeconfig
  16. kubectl config use-context default --kubeconfig=${instance}.kubeconfig
  17. done

结果将会生成以下 3 个文件:

  1. worker-0.kubeconfig
  2. worker-1.kubeconfig
  3. worker-2.kubeconfig

kube-proxy 配置文件

为 kube-proxy 服务生成 kubeconfig 配置文件:

  1. kubectl config set-cluster kubernetes-the-hard-way
  2. --certificate-authority=ca.pem
  3. --embed-certs=true
  4. --server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443
  5. --kubeconfig=kube-proxy.kubeconfig
  6. kubectl config set-credentials kube-proxy
  7. --client-certificate=kube-proxy.pem
  8. --client-key=kube-proxy-key.pem
  9. --embed-certs=true
  10. --kubeconfig=kube-proxy.kubeconfig
  11. kubectl config set-context default
  12. --cluster=kubernetes-the-hard-way
  13. --user=kube-proxy
  14. --kubeconfig=kube-proxy.kubeconfig
  15. kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

分发配置文件

kubeletkube-proxy kubeconfig 配置文件复制到每个 worker 节点上:

  1. for instance in worker-0 worker-1 worker-2; do
  2. gcloud compute scp ${instance}.kubeconfig kube-proxy.kubeconfig ${instance}:~/
  3. done

下一步:配置和生成密钥。