内容转载自: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.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
ca.pem
ca-config.json(←只生成证书的主机需要)
encryption-config.yaml
flanneld-key.pem
flanneld.pem
kube-controller-manager-key.pem
kube-controller-manager.kubeconfig
kube-controller-manager.pem
kubernetes-key.pem
kubernetes.pem
kube-scheduler.kubeconfig
~/.kube/config

             kube-apiserver
             kube-controller-manager
             kube-scheduler

             flanneld

k8s-master-0002 172.27.129.102
k8s-master-0003 172.27.129.103
 k8s-etcd-0001 172.27.129.104ca-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
ca.pem
flanneld-key.pem
flanneld.pem
kubelet-bootstrap.kubeconfig
kubelet-client-2018-12-20-20-10-59.pem
kubelet-client-current.pem
kubelet.config.json
kubelet.crt
kubelet.key
kubelet.kubeconfig
kube-proxy.config.yaml
kube-proxy.kubeconfig

            docker 

            flannel

            kubelet

            kube-proxy   

k8s-node-0002 172.27.129.108 
k8s-node-0003 172.27.129.109
 cluster VIP172.27.129.253  高可用VIP,负责调度apiserver 6443端口

下一篇:K8s-系统初始化.01

              environment.sh 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐