kubeconfig 文件解释

在这里插入图片描述

文件模版

kubeconfig文件是使用kubectl连接k8s集群的配置文件,经典的kubeconfig文件如下

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: {BASE64 STRING}
    server: https://172.16.16.15:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    namespace: ingress-nginx
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: {BASE64 STRING}
    client-key-data: {BASE64 STRING}

文件的主要部分为:clusters、contexts、users 字段

加密

先了解一下非对称加密的基础知识

  • 这里客户端表示为 kubeclt、client-go sdk 等,服务端表示为 apiserver
  • 证书可以理解为签发方信息、拥有者信息、公钥以及签名(由签发方私钥签名,因此签发者背书)的集合
  • 消息发送方使用证书里面的公钥对消息加密,消息接受方使用自己的私钥解密
    单向验证过程如下,双向验证即是指客户端和服务端同时作为消息发送方和接收方,利用对方的证书加密消息

在这里插入图片描述

字段解析

以 kubectl 作为客户端时为例

Cluster字段

name :集群名称
certificate-authority-data: 表示服务端的 CA 证书,base64 编码,用于验证服务端证书 apiserver.crt 的正确性:

  • 当 kubectl 发送消息给 apiserver 时,apiserver 先返回 master 节点上的 /etc/kubernetes/pki/apiserver.crt 服务端证书给 kubectl
  • kubectl 校验 apiserver.crt 的正确性,会获取 apiserver.crt 中的 Issuer CA,发现 CA 的 CN 是 Kubernetes
  • certificate-authority-data 证书的 CN 也是 Kubernetes,利用 certificate-authority-data 对 apiserver.crt 验证通过
  • kubectl 通过 apiserver.crt 对发送给 apiserver 的消息加密发送,apiserver 收到消息通过 /etc/kubernetes/pki/apiserver.key 解密消息

certificate-authority-data 字段表示的证书其实和 /etc/kubernetes/pki/ca.crt 内容都是一样的,这个证书是整个集群的 rootCA,其他证书都是由其签发,也就用它来验证有效性

当 kubectl 开启 --insecure-skip-tls-verify=true 时,表示不校验服务端证书,所以这个时候 certificate-authority-data 即使证书是错误的,也可以和集群通信

User 字段

name :用户名称

client-certificate-data: 表示客户端证书,base64 编码,会发送给 apiserver,用于加密 apiserver 发送给 kubectl 的消息

client-key-data :表示客户端私钥,用于解密 apiserver 通过 client-certificate-data 加密过的内容

整个加解密过程和上述服务端验证过程类似,各证书作用总结如下:
在这里插入图片描述

Context 字段

cluster 和 user 可以配置多个,context 用于组合 cluster 和 user,并通过 current-context 指定当前要使用的 context

原文参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五之

真实案例以及商业项目技术

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值