(一)手动部署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)

镜像仓库

  • docker registry
  • harbor

主要配置策略

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
最后修改:2019 年 08 月 05 日
如果觉得我的文章对你有用,请随意赞赏