Skip to content

Latest commit

 

History

History
101 lines (84 loc) · 3.84 KB

README.md

File metadata and controls

101 lines (84 loc) · 3.84 KB

centos7+ansible+kubeadm,搭建高可用kubernetes集群

备注:

只支持Centos, 且只在centos7上做过测试。

程序关闭了firewalld和selinux。
网络插件使用flannel, kube-proxy使用ipvs模式。
生成了两个default/sa用户,一个admin,有管理权限。另一个viewer,有查看权限。基于这两个用户的dashboard登录文件在build-kubernetes-cluster下生成
在extemsions/files里有一些插件,可以自己去安装dashboard

版本

  • ansible: 2.5.1 +
  • kubernetes: 1.12.3
  • docker: docker-ce-18.09.0

机器(至少4台)

  • 1台控制节点,即运行安装程序所在的节点。(任意拥有所有节点ssh权限的机器,都可以作为控制节点,建议专门选取一台机器作为控制节点。你也可以使用一台master或node节点作为控制节点,需要保证它有自己的ssh权限。)
  • 3台master节点。(用来安装etcd和master)
  • 其他为node节点。

准备工作

kube-api负载均衡器(必须)

  • kube-apiserver负载均衡器。转发到3个master节点的6443端口。如:10.1.11.11:6443 ---> mastersip:6443

安装etcd集群及kubernetes集群(必须)

  1. 修改./build-kubernetes-cluster/hosts文件。
    # 下面的host_name不是你目前节点的hostname,而是你规划的hostname,程序会根据你填入的名称对节点进行修改。
    # 只需填入ip和host_name,其他保持默认。
    
    # 这里只需三台master节点的ip填入即可。
    [master01]
    10.0.x.x major=true host_name=10.0.x.x
    [master02]
    10.0.x.x major=false host_name=10.0.x.x
    [master03]
    10.0.x.x major=false host_name=10.0.x.x
    
    # etcd ips. Can be master ips or not.
    [etcds]
    1.1.1.1 host_name=1.1.x.x
    1.1.1.1 host_name=1.1.x.x
    1.1.1.1 host_name=1.1.x.x
    
    # 这里需要填入node节点ip
    [nodes]
    10.0.x.x
    10.0.x.x
    10.0.x.x
    
  2. 修改参数
    vim ./build-kubernetes-cluster/group_vars/all
    # 在内网机器不能联网的情况下,需要设置这个路由ip。
    # 这个路由会自动设置到不能联网的节点上去,对于能够联网的节点,则会跳过这一步。
    route_ip: 10.0.1.13
    
    # 建议保持默认. support kube 1.12.x
    kube_version: 1.12.3
    docker_version: 18.09.0-3.el7.x86_64
    
    vim ./build-kubernetes-cluster/group_vars/masters
    # 只需填入load_blance_ip,即上面你自己创建的负载均衡器ip。
    load_blance_ip: "10.0.1.1"
    
    # 建议保持默认。load_blance_port即你负载均衡器的port,如果设置的不是6443,在这里更改即可。
    load_blance_port: 6443
    etcd_version: 3.2.18
    
  3. 执行启动脚本
    cd ./build-kubernetes-cluster/
    ./setup.sh
    
    # 等待几分钟,整个集群就搭建起来了。
    

其他

目前除了搭建集群,还默认安装了heapster+influetdb, dashboard(nodeport:30001), logroate,后续考虑会加入其他常用扩展。
目前只适用于centos7,后续考虑兼容ubuntu.