跳过正文
  1. 所有文章/

02|组件版本和配置策略

·906 字·2 分钟
目录
K8S集群部署 - 这篇文章属于一个选集。
§ 2: 本文

主要组件版本
#

组件版本发布时间
kubernetesv1.31.12020-01-22
etcd3.5.162019-10-24
containerd1.7.222020-02-07
runc1.1.152019-12-23
ciliumv1.16.22020-01-27
coredns1.9.42019-12-20
dashboard1.5.02020-02-06
k8s-prometheus-adapterv0.12.02019-04-03
prometheus-operatorv0.76.22020-01-13
prometheusv2.54.12020-01-06
grafana11.2.0-
nginx1.27.2-
nerdctlv1.7.7-
elasticsearch8.5.1-

重要提示
#

为了减少部署过程因为环境导致的操作失败,这里建议最好使用 Debian 12 操作系统进行安装。Debian 系统也是企业首选的操作系统,宇宙最动用的就是 Debian 系统。

另外,需要确保所有节点可正常访问公网。如果访问公网,尤其是国外网站的网速快就更好了,否则下载速度可能很慢,而且容易出现下载超时。

Kubernetes 节点配置
#

学习用的生产级别的 Kubernetes 集群部署配置要求如下:

节点类型最低配置
Master 节点2C4G,50G 硬盘空间
Worker 节点1C2G,50G 硬盘空间

主要配置策略
#

kube-apiserver
#

  • 使用节点本地 nginx 4 层透明代理实现高可用;

  • 关闭非安全端口 8080 和匿名访问;

  • 在安全端口 6443 接收 https 请求;

  • 严格的认证和授权策略(x509、Token、RBAC);

  • 开启 bootstrap token 认证,支持 kubelet TLS bootstrapping;

  • 使用 https 访问 kubelet、etcd,加密通信;

kube-controller-manager
#

  • 2 节点高可用;

  • 关闭非安全端口,在安全端口 10252 接收 https 请求;

  • 使用 kubeconfig 访问 apiserver 的安全端口;

  • 自动 approve kubelet 证书签名请求(CSR),证书过期后自动轮转;

  • 各 controller 使用自己的 ServiceAccount 访问 apiserver;

提示:kube-controller-manager、kube-scheduler 组件生产环境建议 3 节点高可用。有些企业为了节省资源,配置的 2 节点高可用。本套课程,为了减轻你的部署成本,采用了 2 节点高可用。

kube-scheduler
#

  • 2 节点高可用;

  • 使用 kubeconfig 访问 apiserver 的安全端口;

kubelet
#

  • 使用 kubeadm 动态创建 bootstrap token,而不是在 apiserver 中静态配置;

  • 使用 TLS bootstrap 机制自动生成 client 和 server 证书,过期后自动轮转;

  • 在 KubeletConfiguration 类型的 JSON 文件配置主要参数;

  • 关闭只读端口,在安全端口 10250 接收 https 请求,对请求进行认证和授权,拒绝匿名访问和非授权访问;

  • 使用 kubeconfig 访问 apiserver 的安全端口;

kube-proxy
#

  • 使用 kubeconfig 访问 apiserver 的安全端口;

  • 在 KubeProxyConfiguration 类型的 JSON 文件配置主要参数;

  • 使用 ipvs 代理模式;

集群插件(Addons)
#

  • DNS:使用功能、性能更好的 coredns;

  • Dashboard:支持登录认证;

  • Metric:metrics-server,使用 https 访问 kubelet 安全端口;

  • Log:Elasticsearch、Fluent、Kibana;

  • Registry 镜像库:docker-registry、harbor;

K8S集群部署 - 这篇文章属于一个选集。
§ 2: 本文