本次k8s集群采用ansible自动化部署,所有组件部署都是采用二进制的形式,该项目的源码均在gjmzj 项目上面修改
项目拓扑图
本集群采用多主模式,这里使用3台云主机做master,3台云主机做node,节点列表如下
1.ansible脚本部署节点----master1
2.etcd节点使用三台master云主机
3.三台master节点,并且有一个vip地址
4.三台node节点,承载pod
5.2台lb节点(keepalived+haproxy)----master1,master2
本集群是测试环境使用,具体生产环境的话,不同服务的节点需要部署在不同的云主机上面
集群部署步骤:
1.基础配置
6台云主机,采用centos7.3系统(ubuntu系统也可)
配置基础网络,更新源,配置ssh等
2.6台云主机
#安装 epel 源并更新yum install epel-release -y
yum update
#安装python yum install python -y
3.在deploy节点(master1)部署ansible
在部署ansible之前,需要安装ssh免秘钥登录
master1节点
ssh-keygen
ssh-copy-id root@ip
yum install git python-pip -y
#pip安装ansible(国内如果安装太慢可以直接用pip阿里云加速)
#pip install pip --upgrade
#pip install ansiblepip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install --no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
4.在deploy节点(master1)编排k8s集群
4.1下载项目源码
git clone https://github.com/gjmzj/kubeasz.git
mkdir -p /etc/ansible
mv kubeasz/*/etc/ansible
4.2下载k8s二进制文件
tar zxvf k8s.1-11-3.tar.gz(最新版本的k8s包)
mv bin/*/etc/ansible/bin
4.3配置集群参数
4.3.1 cd /etc/ansible && cp example/hosts.m-masters.example hosts, 然后实际情况修改此hosts文件(按照自己的节点信息修改hosts文件里面的ip信息要和自己的云主机ip对应起来)
4.3.2 验证ansible:ansible all -m ping如果返回success说明ansible通信正常,可以进行后续部署
5.部署k8s
cd /etc/ansible
5.1创建证书及安装准备
kubernetes 系统各组件需要使用 TLS 证书对通信进行加密,因此需要创建证书并未安装做准备
ansible-playbook 01.prepare.yml
需要修改prepare.yml里面的参数,将hosts部分修改为和/etc/ansible/hosts里面的节点参数名对应起来
5.2安装etcd集群
ansible-playbook 02.etcd.yml
需要修改etcd.yml里面的参数,将hosts部分修改为和/etc/ansible/hosts里面的节点参数名对应起来,和5.1步骤类似
5.3安装docker服务
ansible-playbook 03.docker.yml
需要修改docker.yml里面的参数,将hosts部分修改为和/etc/ansible/hosts里面的节点参数名对应起来,和5.1步骤类似
5.4安装master节点
ansible-playbook 04.kube-master.yml
需要修改kube-master.yml里面的参数,将hosts部分修改为和/etc/ansible/hosts里面的节点参数名对应起来,和5.1步骤类似
5.5安装node节点
ansible-playbook 05.kube-node.yml
需要修改.kube-node.yml里面的参数,将hosts部分修改为和/etc/ansible/hosts里面的节点参数名对应起来,和5.1步骤类似
5.6安装集群网络
ansible-playbook 06.network.yml
需要修改network.yml里面的参数,将hosts部分修改为和/etc/ansible/hosts里面的节点参数名对应起来,和5.1步骤类似
6.以上安装成功后,在master1节点kubectl get nodes会看到6台节点均已启用,详细的源码可以参考/gjmzj
网友评论