前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二进制部署k8s教程17 - 最后总结

二进制部署k8s教程17 - 最后总结

原创
作者头像
janrs.com
发布2023-03-08 21:06:41
3810
发布2023-03-08 21:06:41
举报
文章被收录于专栏:超详细二进制部署k8s系列[19]篇

!TIP 二进制部署 k8s - 最后总结


转载请注明出处:https://janrs.com/4frg 有任何问题欢迎在底部评论区发言。

最后总结

!NOTE 除了聚合层 Aggregator 没有部署外,一套高可用的,开启 node 鉴权跟 RBAC 鉴权的 k8s 集群就搭建起来了。

关于 ssl 证书

这一通二进制部署撸下来,其实可以看出,ssl 证书并不复杂。

ssl 的基本概念就是 ca 签发机构和单向认证/双向认证。

只要是作为一个独立的服务对外提供访问,就可以自己拥有一个 ca 签发机构。 只要有自身要开启 ssl 认证就用自己的 ca 机构为自己签发 server 证书。 只需要有客户端需要访问自身的服务并且要认证身份,就用自己的 ca 机构为其颁发 client 证书,并且指定 CN 用户名和 O 用户组/组织。 只要自身既要作为客户端又要作为服务端互相访问,就用自己的 ca 机构签发 peer 对等证书。k8s 只有 etcd 需要用到该证书。

k8s 中,难的不是 ssl 证书。难的是了解整个 k8s 的运行机制。

k8s 除了需要 ssl 证书认证之外,还创建了一套鉴权机制。常用的 RBAC 鉴权通过在 ssl 证书中指定 CN 用户名以及 O

用户组关联到 RBAC 的用户。

通过二进制部署就可以很好的学习 k8s 的运行机制。

深入理解 kubelet 证书

详细的深入理解总结不写了。通过前面的部署就可以明白证书是怎么一回事了。写文档也是很费劲。头发要多掉好几根。

需要明白的一个重要的地方就是,kubelet 有三种认证方式:

手动部署证书 自签名部署证书 TLS Bootstrap 自动引导签发证书。包括 kubeletclient 以及 server 证书 kube-apiserver 还可以对 kubelet 开启自动审核以及自动轮转过期证书

关于 kube-apiserver 以及 HA

k8s 对于 kube-apiserver 没有提供高可用的方式,可以通过 nginx + kube-apiserver 部署高可用。

需要注意的是:在签发 kube-apiserverserver 证书的时候,需要把 HA 服务器的 ip 地址以及 keepalivedvip

地址写进去。

否则 HA 入口以及 vip 入口都没法使用。提示未授权。

关于 RBAC 鉴权

常用的 RBAC 鉴权是需要跟 ssl 证书关联的。当客户端访问 kube-apiserver 的时候,会使用 ssl 中的 CN 参数以及 O 参数。

CN 参数用来当作 RBAC 的用户名,O 参数用来当作 RBAC 的用户组。

k8s 有默认的一些重要的集群角色,常用的比如:

kube-controller-manager 使用的 system:kube-controller-manager 集群角色 kubelet 加入集群使用的 system:node:<nodeName> 角色以及 system:nodes 角色组 kube-proxy 使用的 kube-proxier 集群角色

在创建 ssl 的时候指定了 CN 用户名以及 O 用户组后,还需要根据实际情况创建集群色或者普通角色,再将角色绑定到 CN

指定的用户名以及 O 指定的用户组。

这样一个客户端用户才有权限操作到 k8s 中的资源。

关于 kubeconfig

kubeconfigk8s 创建的一种客户端访问 kube-apiserver 的方式。

kubeconfig 需要指定集群信息,客户端 ssl 认证信息,客户端用户名称信息。

还可用通过 kubeconfig 切换上下文使用不同的客户端用户访问 kube-apiserver

关于使用哪种 kubelet 证书颁发方式

直接使用 TLS Bootstrap 自动引导证书即可,包括开启 kubelet 的服务端 server 证书自动引导颁发。

并且开启自动审核以及自动轮换。

最后关于 kube-controller-manager 与 TLS Bootstrap

在前面到 ssl 证书简介提到的,一堆的关于 sign 的参数,其实就是跟 TLS Bootstrap 相关的。

具体的就是跟 TLS Bootstrap 自动颁发 kubeletclient 以及 server 证书相关。

目前不折腾验证对应的参数以及证书是如何颁发与校验的,真的非常的折腾的。

主要验证是否可以由同一个 ca 机构颁发的。后面有空再折腾了。


转载请注明出处:https://janrs.com/4frg 有任何问题欢迎在底部评论区发言。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最后总结
    • 关于 ssl 证书
      • 深入理解 kubelet 证书
        • 关于 kube-apiserver 以及 HA
          • 关于 RBAC 鉴权
            • 关于 kubeconfig
              • 关于使用哪种 kubelet 证书颁发方式
                • 最后关于 kube-controller-manager 与 TLS Bootstrap
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档