【kubernetes-the-hard-way】05-kubernetes-configuration-files 生成用于身份验证的 Kubernetes 配置文件

【kubernetes-the-hard-way】05-kubernetes-configuration-files 生成用于身份验证的 Kubernetes 配置文件

生成用于身份验证的 Kubernetes 配置文件

在本实验中,您将生成 Kubernetes 配置文件,也称为 kubeconfigs,它使 Kubernetes 客户端能够定位并进行身份验证 Kubernetes API 服务器。

客户端身份验证配置

在本节中,您将为kubeletadmin用户生成 kubeconfig 文件。

kubelet Kubernetes 配置文件

为 Kubelet 生成 kubeconfig 文件时,必须使用与 Kubelet 节点名称匹配的客户端证书。 这将确保 Kubelet 得到 Kubernetes 节点授权者 的正确授权。

以下命令必须在生成 SSL 证书的同一目录中运行。

在node-0工作节点生成kubeconfig文件:

for host in node-0 node-1; do
  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://server.kubernetes.local:6443 \
    --kubeconfig=${host}.kubeconfig

  kubectl config set-credentials system:node:${host} \
    --client-certificate=${host}.crt \
    --client-key=${host}.key \
    --embed-certs=true \
    --kubeconfig=${host}.kubeconfig

  kubectl config set-context default \
    --cluster=kubernetes-the-hard-way \
    --user=system:node:${host} \
    --kubeconfig=${host}.kubeconfig

  kubectl config use-context default \
    --kubeconfig=${host}.kubeconfig
done

您可以使用以下命令列出生成的文件:

ls -1 node-0.kubeconfig node-1.kubeconfig

结果:

node-0.kubeconfig
node-1.kubeconfig

kube-proxy Kubernetes 配置文件

kube-proxy服务生成 kubeconfig 文件:

{
  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://server.kubernetes.local:6443 \
    --kubeconfig=kube-proxy.kubeconfig

  kubectl config set-credentials system:kube-proxy \
    --client-certificate=kube-proxy.crt \
    --client-key=kube-proxy.key \
    --embed-certs=true \
    --kubeconfig=kube-proxy.kubeconfig

  kubectl config set-context default \
    --cluster=kubernetes-the-hard-way \
    --user=system:kube-proxy \
    --kubeconfig=kube-proxy.kubeconfig

  kubectl config use-context default \
    --kubeconfig=kube-proxy.kubeconfig
}

您可以使用以下命令列出生成的文件:

ls -1 kube-proxy.kubeconfig

结果:

kube-proxy.kubeconfig

kube-controller-manager Kubernetes 配置文件

kube-controller-manager服务生成 kubeconfig 文件:

{
  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://server.kubernetes.local:6443 \
    --kubeconfig=kube-controller-manager.kubeconfig

  kubectl config set-credentials system:kube-controller-manager \
    --client-certificate=kube-controller-manager.crt \
    --client-key=kube-controller-manager.key \
    --embed-certs=true \
    --kubeconfig=kube-controller-manager.kubeconfig

  kubectl config set-context default \
    --cluster=kubernetes-the-hard-way \
    --user=system:kube-controller-manager \
    --kubeconfig=kube-controller-manager.kubeconfig

  kubectl config use-context default \
    --kubeconfig=kube-controller-manager.kubeconfig
}

您可以使用以下命令列出生成的文件:

ls -1 kube-controller-manager.kubeconfig

结果:

kube-controller-manager.kubeconfig

kube-scheduler Kubernetes 配置文件

kube-scheduler服务生成 kubeconfig 文件:

{
  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://server.kubernetes.local:6443 \
    --kubeconfig=kube-scheduler.kubeconfig

  kubectl config set-credentials system:kube-scheduler \
    --client-certificate=kube-scheduler.crt \
    --client-key=kube-scheduler.key \
    --embed-certs=true \
    --kubeconfig=kube-scheduler.kubeconfig

  kubectl config set-context default \
    --cluster=kubernetes-the-hard-way \
    --user=system:kube-scheduler \
    --kubeconfig=kube-scheduler.kubeconfig

  kubectl config use-context default \
    --kubeconfig=kube-scheduler.kubeconfig
}

您可以使用以下命令列出生成的文件:

ls -1 kube-scheduler.kubeconfig

结果:

kube-scheduler.kubeconfig

管理 Kubernetes 配置文件

admin用户生成 kubeconfig 文件:

{
  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://127.0.0.1:6443 \
    --kubeconfig=admin.kubeconfig

  kubectl config set-credentials admin \
    --client-certificate=admin.crt \
    --client-key=admin.key \
    --embed-certs=true \
    --kubeconfig=admin.kubeconfig

  kubectl config set-context default \
    --cluster=kubernetes-the-hard-way \
    --user=admin \
    --kubeconfig=admin.kubeconfig

  kubectl config use-context default \
    --kubeconfig=admin.kubeconfig
}

您可以使用以下命令列出生成的文件:

ls -1 admin.kubeconfig

结果:

admin.kubeconfig

分发 Kubernetes 配置文件

kubeletkube-proxy kubeconfig 文件复制到 node-0 实例:

for host in node-0 node-1; do
  ssh root@$host "mkdir /var/lib/{kube-proxy,kubelet}"
  
  scp kube-proxy.kubeconfig \
    root@$host:/var/lib/kube-proxy/kubeconfig \
  
  scp ${host}.kubeconfig \
    root@$host:/var/lib/kubelet/kubeconfig
done

kube-controller-managerkube-schedulerkubeconfig 文件复制到控制器实例:

scp admin.kubeconfig \
  kube-controller-manager.kubeconfig \
  kube-scheduler.kubeconfig \
  root@server:~/

下一步: 生成数据加密配置和密钥

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值