1 组件版本和配置策略
1.1 组件版本
组件
版本
发布时间
kubernetes
1.16.6
2020-01-22
etcd
3.4.3
2019-10-24
containerd
1.3.3
2020-02-07
runc
1.0.0-rc10
2019-12-23
calico
3.12.0
2020-01-27
coredns
1.6.6
2019-12-20
dashboard
v2.0.0-rc4
2020-02-06
k8s-prometheus-adapter
0.5.0
2019-04-03
prometheus-operator
0.35.0
2020-01-13
prometheus
2.15.2
2020-01-06
elasticsearch、kibana
7.2.0
2019-06-25
cni-plugins
0.8.5
2019-12-20
metrics-server
0.3.6
2019-10-15
1.2 主要配置策略
1.2.1 kube-apiserver:
使用节点本地 nginx 4 层透明代理实现高可用;
关闭非安全端口 8080 和匿名访问;
在安全端口 6443 接收 https 请求;
严格的认证和授权策略 (x509、token、RBAC);
开启 bootstrap token 认证,支持 kubelet TLS bootstrapping;
使用 https 访问 kubelet、etcd,加密通信;
1.2.2 kube-controller-manager:
3 节点高可用;
关闭非安全端口,在安全端口 10252 接收 https 请求;
使用 kubeconfig 访问 apiserver 的安全端口;
自动 approve kubelet 证书签名请求 (CSR),证书过期后自动轮转;
各 controller 使用自己的 ServiceAccount 访问 apiserver;
1.2.3 kube-scheduler:
3 节点高可用;
使用 kubeconfig 访问 apiserver 的安全端口;
1.2.4 kubelet:
使用 kubeadm 动态创建 bootstrap token,而不是在 apiserver 中静态配置;
使用 TLS bootstrap 机制自动生成 client 和 server 证书,过期后自动轮转;
在 KubeletConfiguration 类型的 JSON 文件配置主要参数;
关闭只读端口,在安全端口 10250 接收 https 请求,对请求进行认证和授权,拒绝匿名访问和非授权访问;
使用 kubeconfig 访问 apiserver 的安全端口;
1.2.5 kube-proxy:
使用 kubeconfig 访问 apiserver 的安全端口;
在 KubeProxyConfiguration 类型的 JSON 文件配置主要参数;
使用 ipvs 代理模式;
1.2.6 集群插件:
DNS:使用功能、性能更好的 coredns;
Dashboard:支持登录认证;
Metric:metrics-server,使用 https 访问 kubelet 安全端口;
Log:Elasticsearch、Fluend、Kibana;
Registry 镜像库:docker-registry、harbor;
2 初始化系统和全局变量
2.1 集群规划
sre-master-node:10.12.5.60
sre-worker-node-1:10.12.5.61
sre-worker-node-2:10.12.5.62
1 组件版本和配置策略
1.1 组件版本
组件
版本
发布时间
kubernetes
1.16.6