K8s-组件版本和配置策略.00
内容转载自:https://github.com/opsnull/follow-me-install-kubernetes-cluster/blob/master/00.%E7%BB%84%E4%BB%B6%E7%89%88%E6%9C%AC%E5%92%8C%E9%85%8D%E7%BD%AE%E7%AD%96%E7%95%A5.md组件版本Kubernetes 1.10.4Dock...
组件版本
- Kubernetes 1.10.4
- Docker 18.03.1-ce
- Etcd 3.3.7
- Flanneld 0.10.0
- 插件:
- Coredns
- Dashboard
- Heapster (influxdb、grafana)
-
主要配置策略
- 使用 keepalived 和 haproxy 实现 3 master节点高可用;
- 关闭非安全端口 8080 和匿名访问;
- 在安全端口 6443 接收 https 请求;
- 严格的认证和授权策略 (x509、token、RBAC);
- 开启 bootstrap token 认证,支持 kubelet TLS bootstrapping;
- 使用 https 访问 kubelet、etcd,加密通信;
kube-controller-manager:
- 3 节点高可用;
- 关闭非安全端口,在安全端口 10252 接收 https 请求;
- 使用 kubeconfig 访问 apiserver 的安全端口;
- 自动 approve kubelet 证书签名请求 (CSR),证书过期后自动轮转;
- 各 controller 使用自己的 ServiceAccount 访问 apiserver;
kube-scheduler:
- 3 节点高可用;
- 使用 kubeconfig 访问 apiserver 的安全端口;
kubelet:
- 使用 kubeadm 动态创建 bootstrap token,而不是在 apiserver 中静态配置;
- 使用 TLS bootstrap 机制自动生成 client 和 server 证书,过期后自动轮转;
- 在 KubeletConfiguration 类型的 JSON 文件配置主要参数;
- 关闭只读端口,在安全端口 10250 接收 https 请求,对请求进行认证和授权,拒绝匿名访问和非授权访问;
- 使用 kubeconfig 访问 apiserver 的安全端口;
kube-proxy:
- 使用 kubeconfig 访问 apiserver 的安全端口;
- 在 KubeProxyConfiguration 类型的 JSON 文件配置主要参数;
- 使用 ipvs 代理模式;
集群插件:
- DNS:使用功能、性能更好的 coredns;
- Dashboard:支持登录认证;
- Metric:heapster,使用 https 访问 kubelet 安全端口;
主机名 | IP | 需要的证书(/etc/kubernetes/cert) | 运行的服务 |
k8s-master-0001 | 172.27.129.101 | ca-key.pem | kube-apiserver flanneld |
k8s-master-0002 | 172.27.129.102 | ||
k8s-master-0003 | 172.27.129.103 | ||
k8s-etcd-0001 | 172.27.129.104 | ca-key.pem etcd-key.pem ca.pem etcd.pem | etcd集群 |
k8s-etcd-0002 | 172.27.129.105 | ||
k8s-etcd-0003 | 172/27.129.106 | ||
k8s-node-0001 | 172.27.129.107 | ca-key.pem | docker flannel kubelet kube-proxy |
k8s-node-0002 | 172.27.129.108 | ||
k8s-node-0003 | 172.27.129.109 | ||
cluster VIP | 172.27.129.253 | 高可用VIP,负责调度apiserver 6443端口 |
下一篇:K8s-系统初始化.01
更多推荐
所有评论(0)