Giter VIP home page Giter VIP logo

kubernetes-ha-ansible's Introduction

kubernetes-ha-ansible

  • kubernetes: v1.14.x、v.15.x
  • etcd: v3.3.10
  • 容器运行时: docker 18.06.x、18.09.x; containerd
  • 系统: Ubuntu 16.04+、CentOS 7.4+

部署:ansible快速一键部署二进制kubernetes集群,所有二进制组件下载地址都是国内网络达,真正快速一键部署 。

高可用:采用在每个worker节点部署代理的方式,完全兼容各种有网络限制(不能使用VIP)的云环境(例如阿里云)。

kube-ha

说明文档

  • 部署说明

    1、前期准备
    2、配置节点IP和变量
    3、快速部署
    4、分步部署
    5、离线部署
    6、重置集群

  • roles说明

    //TODO

    1、下载二进制文件
    2、部署容器运行时
    3、部署etcd集群
    ​ ​ ​ ​ ​ ​ 3.1、生成etcd证书
    ​ ​ ​ ​ ​ ​ 3.2、部署etcd集群
    4、部署kubernetes集群
    ​ ​ ​ ​ ​ ​ 4.1、生成kubernetes集群证书
    ​ ​ ​ ​ ​ ​ 4.2、部署master节点
    ​ ​ ​ ​ ​ ​ 4.3、节点配置
    ​ ​ ​ ​ ​ ​ 4.4、部署node节点
    5、部署扩展插件

目录结构

.  
├── deploy.yml······················ 集群部署剧本
├── reset.yml······················· 集群重置剧本
├── inventory······················· 配置目录(hosts、变量)
├── kube-cluster···················· 部署的时候自动生成,存放下载的二进制文件、生成的证书和配置
└── roles
    ├── download···················· 1、下载二进制文件(国内网络可达)
    ├── cri························· 2、部署容器运行时(只安装一个)    
    │   ├── docker
    │   ├── containerd
    │   └── cri-o(TODO)
    ├── etcd························ 3、部署etcd集群  
    │   ├── pki(生成etcd证书)
    │   └── etcd(部署etcd集群)
    ├── k8s························· 4、部署kubernetes集群 
    │   ├── pki(生成kubernetes集群证书)
    │   ├── master(部署master节点)
    │   ├── sys-setup(配置节点)
    │   └── node(部署node节点)
    └── addons······················ 5、部署扩展插件(按需选择)    
        ├── network
        │   ├── flannel
        │   └── calico(TODO)
        ├── croedns
        ├── metrics_server(TODO)
        └── ingress_controller(TODO) 

快速部署

  • 复制一份配置文件 根据自己的集群IP地址信息配置inventory/k8s-cluster/hosts.ini文件

    cp -r inventory/k8s-example inventory/k8s-cluster
    
  • 测试节点的连通性

    ansible -i inventory/k8s-cluster/hosts.ini -m ping all
    
  • 执行剧本,部署集群

    ansible-playbook -i inventory/k8s-cluster/hosts.ini deploy.yml
    
  • 查看集群信息

    root@ubuntu:~ # kubectl get cs
    NAME                 STATUS    MESSAGE             ERROR
    controller-manager   Healthy   ok                  
    scheduler            Healthy   ok                  
    etcd-0               Healthy   {"health":"true"}   
    etcd-2               Healthy   {"health":"true"}   
    etcd-1               Healthy   {"health":"true"}   
    
    root@ubuntu:~ # kubectl get nodes -o wide
    NAME      STATUS   ROLES    AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION              CONTAINER-RUNTIME
    master1   Ready    master   4m40s   v1.15.0   172.16.16.112   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    master2   Ready    master   4m40s   v1.15.0   172.16.16.113   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    master3   Ready    master   4m40s   v1.15.0   172.16.16.114   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    worker1   Ready    node     4m20s   v1.15.0   172.16.16.115   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    worker2   Ready    node     4m19s   v1.15.0   172.16.16.116   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    worker3   Ready    node     4m18s   v1.15.0   172.16.16.117   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    worker4   Ready    node     3m44s   v1.15.0   172.16.16.118   <none>        Ubuntu 18.04.2 LTS      4.15.0-51-generic           docker://18.9.7
    worker5   Ready    node     4m19s   v1.15.0   172.16.20.12    <none>        CentOS Linux 7 (Core)   3.10.0-862.6.3.el7.x86_64   docker://18.9.7
    

kubernetes-ha-ansible's People

Contributors

yuyicai avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.