2018-08-01 孙小北

二进制部署k8s集群方案之组件版本和配置策略

养浩然之气,做博学之人

本文整理使用二进制部署最新 kubernetes v1.10.4 集群的详细步骤,而不是使用 kubeadm 等自动化方式来部署集群。启用了 x509 证书双向认证、RBAC 授权等严格的安全机制,一起动手搭个集群玩玩吧。

组件版本

Kubernetes 1.10.4

Docker 18.03.1-ce

Etcd 3.3.7

Flanneld 0.10.0

插件:

Coredns

Dashboard

Heapster (influxdb、grafana)

Metrics-Server

EFK (elasticsearch、fluentd、kibana)

镜像仓库:

docker registry

harbor

主要配置策略

kube-apiserver:

使用 keepalived 和 haproxy 实现 3 节点高可用;

关闭非安全端口 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、metrics-server,使用 https 访问 kubelet 安全端口;

Log:Elasticsearch、Fluend、Kibana;

Registry 镜像库:docker-registry、harbor;




参考:https://github.com/opsnull/follow-me-install-kubernetes-cluster


编辑:孙小北

本文地址: https://www.xiaowangyun.com/wyblog/detail/?id=223

版权归属: www.xiaowangyun.com   转载时请以链接形式注明出处

0 条评论

快来评论

物以类聚

最新评论

2017-10-06

一辈子不长,只有珍惜了,才不至于后悔。

2017-10-06

懂得感恩,才能走得更远。

标签云

归档

取消

感谢您的支持,您的每一次打赏都是一次鼓励!

扫码支持
每一次支持,都是不懈的动力

打开支付宝扫一扫,即可进行扫码打赏哦