-
首页
- 正文
(一)手动部署k8s之-组件版本和配置策略
原教程来自 github/opsnull, 现在此基础上记录自己搭建遇到的问题
组件版本
- Kubernetes 1.14.2
- Docker 18.09.6-ce
- Etcd 3.3.13
- Flannel 0.11.0
插件
- Coredns
- Dashboard
- Metrics-server
- EFK(elasticsearch, fluentd, kibana)
镜像仓库
主要配置策略
kube-apiserver
- 使用节点本地nginx 4层透明代理实现高可用
- 关闭非安全端口8080和匿名访问
- 在安全端口6443接收https请求
- 严格的认证和授权策略(x509, token, RBAC)
- 开启bootstrap token 认证,支持kubelet TLS bootstrapping
- 使用https访问kubelet,etcd,加密通信
kubekube-controller-manager
- 3节点高可用
- 关闭非安全端口,在安全端口10252接收https请求
- 使用kubeconfig访问apiserver的安全段端口
- 自动approve kubelet证书签名请求(CSR),证书过期后自动轮转
- 各controller使用自己的ServerAccount访问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
- DashDashboard: 支持登录认证
- Metric: metrics-server,使用https访问kubelet安全端口
- Log: Elasticsearch, Fluentd, kibana
- Registry镜像库: docker-registry, harbor