Git Product home page Git Product logo

k8s_init's Introduction

Kubernetes高可用集群

Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

通过Kubernetes你可以:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

本工具使用ansible playbook安装k8s高可用集群,并可进行节点扩容。

版本说明:

名称 版本
kubernetes 1.10.4
docker 18.03.1
system CentOS 7.5

使用方法:

一、修改inventory文件

请按照inventory格式填写

#本组内填写etcd服务器及主机名
[etcd]
172.17.14.220    hostname=k8s-etcd-01

#本组内填写master服务器及主机名
[master]
172.17.14.223    hostname=k8s-master-01
172.17.14.224    hostname=k8s-master-02
172.17.14.225    hostname=k8s-master-03

#本组机器不会进行系统初始化等操作,仅用做安装kubectl命令行
[kubectl]
172.17.14.223    hostname=k8s-master-01

#本组机器不会进行系统初始化等操作,只是apiserver证书签发时使用
[k8s_service]
10.64.0.1        #service网段第一个IP
172.17.14.229    #apiserver 负载均衡IP

#本组填写执行playbook的机器IP,不会进行系统初始化等操作
[sslhost]
172.16.70.177

#本组内填写node服务器及主机名
[node]
172.17.14.226   hostname=k8s-node-01
172.17.14.227   hostname=k8s-node-02
172.17.14.228   hostname=k8s-node-03
172.17.14.231   hostname=k8s-node-04

二、修改相关配置

编辑group_vars/all文件

配置项 说明
zbx_server_ip 填写zabbix server的IP,系统初始化会自动安装zabbix-agent
gpgkey 选择使用vpc内网软件源还是外网软件源
download_url k8s二进制文件下载地址
ssl_dir 签发ssl证书保存路径
ssl_days 签发ssl的有效期(单位:天)
apiserver_domain_name apiserver域名,签发证书和配置node节点连接master时会用到
service_cluster_ip_range 指定k8s集群service的网段
pod_cluster_cidr 指定k8s集群pod的网段
cluster_dns 指定集群dns服务IP
harbor 指定harbor镜像仓库地址

###三、安装方式

1、系统初始化

ansible-playbook k8s.yml -i inventory -t init

2、签发证书

ansible-playbook k8s.yml -i inventory -t cert

3、安装etcd

ansible-playbook k8s.yml -i inventory -t install_etcd

4、安装master节点

ansible-playbook k8s.yml -i inventory -t install_master

5、安装node节点

ansible-playbook k8s.yml -i inventory -t install_node

6、全部安装

ansible-playbook k8s.yml -i inventory

7、扩容mater节点

ansible-playbook k8s.yml -i inventory -t init -l master
ansible-playbook k8s.yml -i inventory -t cert,install_master 

8、扩容node节点

ansible-playbook k8s.yml -i inventory -t init -l node
ansible-playbook k8s.yml -i inventory -t cert,install_node

9、替换证书

先删除ca、apiserver证书,然后执行以下步骤

ansible-playbook k8s.yml -i inventory -t cert
ansible-playbook k8s.yml -i inventory -t dis_certs,restart_flannel,restart_master,restart_node,restart_etcd

kubernetes HA架构

k8s

k8s_init's People

Watchers

 avatar  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.