【这老哥的博客绝了,顶k8s1.14.3+flannel0.11.0】
【多个公有云,打通网络】

1 搭建计划 需求配置

2 环境准备

  • 1、机器上生成密钥,无密码ssh登陆
  • 2、关闭防火墙,以下点所有机器执行
  • 3、关闭swap分区
  • 4、关闭SELinux
  • 5、升级内核参考
  • 6、修改文件句柄数
  • 7、配置yum源
  • 8、安装ipvs
  • 9、修改系统参数
  • 10、在生产环境建议预留内存,避免由于内存耗尽导致ssh连不上主机(32G的机器留2G,251的留3G, 500G的留5G)

3 部署docker

  • 1、二进制部署
  • 2、yum
    注意:配置daemon, 因为kubelet的启动环境变量要与docker的cgroup-driver驱动相同,以下是官方推荐处理方式(现在新版二进制kubelet就是cgroup了)

4 etcd

  • 1、创建etcd证书,用cfssl工具 将生成好的etcd.pem和etcd-key.pem以及ca.pem三个文件拷贝到etcd机器上
  • 2、在各个机器上创建etcd.service文件 并 启动服务
  • 3、验证集群

5 flannel

目的是跨主机的docker能够互相通信

  • 1、创建flannel证书
  • 2、然后将证书拷贝到所有节点
  • 3、向etcd写入集群Pod网段信息
  • 4、创建flannel.service文件

注意:

#mk-docker-opts.sh 脚本将分配给flanneld的Pod子网网段信息写入到/run/flannel/docker文件中,后续docker启动时使用这个文件中参数值设置docker0网桥。
#flanneld 使用系统缺省路由所在的接口和其它节点通信,对于有多个网络接口的机器(如,内网和公网),可以用 -iface=enpxx 选项值指定通信接口

5.1配置docker支持flannel

配置docker支持flannel网络,需要在[Service]标签下新加

5.2设置CNI插件支持flannel

6 部署keepalived+haproxy

7部署master

kube-scheduler,kube-controller-manager 和 kube-apiserver 三者的功能紧密相关;同时kube-scheduler 和 kube-controller-manager 只能有一个进程处于工作状态,如果运行多个,则需要通过选举产生一个 leader

7.1 kubectl

kubectl 是 kubernetes 集群的命令行管理工具,默认从 ~/.kube/config 文件读取 kube-apiserver 地址、证书、用户名等信息,如果没有配置,执行 kubectl 命令时可能会出错

7.2 api-server

7.3 kube-controller-manager

7.4 kube-scheduler

8 部署node

8.1 kubelet

8.2 kube-proxy

9 部署集群插件

9.1 coredns

9.2 dashboard

9.3 heapster

Logo

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

更多推荐