前言

k8s部署的方式多种多样,除去各家云厂商提供的工具,在bare metal中,也有二进制部署和一系列的自动化部署工具(kubeadm,kubespary,rke等)。具体二进制部署大家可以参考宋总的系列文章。而rke是由rancher提供的工具,由于刚刚出来,有不少问题,我亲测centos上安装失败,ubuntu上可以成功。而kubeadm官方提供的自动化部署工具,虽然官方暂时不建议用于生产,但是其实安装过程中改造一下就可以部署一个高可用的集群,另外官方在blog中申明会在2018年release。而且kubeadm紧跟k8s新版本发布。

集群概述

整个集群包括4大部分

  • etcd集群(3节点)
  • keepalived
  • k8s master(3节点)
  • k8s node

etcd集群:主要作为kubernetes集群和calico网络的数据存储。本安装pod网络采用calico
keepalived:由于kube-apiserver可横向扩展,实现高可用,所以主要通过keepalived设置的vip作为统一的入口。
addon:准备采用coredns替换skydns。

集群组件版本

  • docker 1.12.6
  • kubenetes1.9
  • etcd 3.2.11
  • coredns 1.0
  • calico 2.6
  • nginx-ingress 0.9
  • keepalived 1.3.9

集群机器

  • etcd-host1 172.16.120.151
  • etcd-host2 172.16.120.152
  • etcd-host3 172.16.120.153
  • master-host1 172.16.120.154
  • master-host2 172.16.120.155
  • master-host3 172.16.120.156
  • node-host1 172.16.120.157
  • 主keepalived 172.16.120.154
  • 从keepalived 172.16.120.155
  • 从keepalived 172.16.120.156
  • VIP 172.16.120.200

后续计划

  • kube-router替换kube-proxy。因为calico网络策略和kube-proxy的ipvs模式有冲突,一直找不到解决办法。而kube-router启用service proxy模式,该模式基于IPVS/LVS。
  • contour替换nginx ingress,contour基于 Envoy proxy实现。

iyacontrol
1.4k 声望2.7k 粉丝

专注kubernetes,devops,aiops,service mesh。