一 首先基础安装
1装ubuntu server 16.04;配置网络,主机名等
安装教程http://www.cnblogs.com/jimmycan/p/5980515.html (博客为中文 可按照自己的需要修改,)
关闭防火墙(sudo ufw disable)
systemctl stop firewalld
systemctl disable firewalld
2安装显卡驱动 docker docker-compose nvidia-docker (没有显卡的可以只装docker docker-compose)
https://gist.github.com/dangbiao1991/7825db1d17df9231f4101f034ecd5a2b (可参考显卡驱动的安装)修改
Docker安装
https://get.daocloud.io/
curl -sSL https://get.daocloud.io/docker | sh
Docker hub 加速 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e1187316.m.daocloud.io(可选择不安装)
nvidia-docker安装
https://github.com/NVIDIA/nvidia-docker
Docker-compose 安装
docker-compose直接下载的可执行的二进制文件,copy到系统路径下,赋予可执行权限就可以了
curl -L https://github.com/docker/compose/releases/download/1.20.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 注意这里不知道和docker版本匹配没有,我下载的是1.20.0
遇到的问题 http://www.cnblogs.com/sixiweb/p/7048914.html |
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。
部署平台用的docker-compose -f docker-compose.yml up
1.6 安装ansible
这里必须找一个空闲的机器部署ansible #目前Ansible可以从安装了Python 2(版本2.6或2.7)或Python 3(版本3.5及更高版本)的任何机器上运行(控制机器不支持Windows) 安装参考官网和博客: http://docs.ansible.com/ansible/latest/intro_installation.html#installation http://www.simlinux.com/2014/12/05/ansible-handbook.html $ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible |
一台空闲机器(不能是集群中的节点机器),安装ansible(在线安装即可),生成证书:ssh-keygen -t rsa '', (在root目录下执行该命令)
然后使用如下命令把证书下发到要安装集群的节点上ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.188 (填写自己机器的用户名和机器IP)所有机器都需要
并且节点上必须事前安装python(在线安装即可)
安装make命令:apt-get install -y make
1)安装docker:根据官网安装选择符合自己系统和自己版本的docker
2)找一台相同系统以及版本的虚拟机安装ansible,并在/root目录下生成证书,把证书分发到需要执行脚本的虚拟机上,本机也要发送;
3)在Ubuntu系统下安装haproxy以及keepalived时,需要事前安装一些软件,
<1>apt install -y gcc
1. apt-get install libssl-dev
2. apt-get install openssl
3. apt-get install libpopt-dev
(4)系统上需要实现安装Python,如果系统上没有安装Python,使用以下命令安装Python(Ubuntu):apt install -y python
如果需要指定
$ wget -c https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz $ tar -xzvf Python-2.7.9.tgz $ cd Python-2.7.9/ $ LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure $ make $ sudo make install
|
(5)由于脚本中需要执行.sh的脚本,在Ubuntu的系统中测试是否是使用dash来解析的,使用一下命令来解析: ls -l /bin/sh如果显示/bin/sh->dash证明是使用dash来解析的,改为使用bash方案,执行命令dpkg-reconfigure dash(root权限)在选择界面选择no,这样.sh脚本就可以解析了;【解决Ubuntu系统shell中source:not found 错误】 注意这里的机器上都需要这样指定
3.7 配置ansible的hosts文件
安装完ansible之后,会在/etc/ansible目录下生成hosts文件,若没有此文件,在改目录下创建此文件,并根据上图进行配置:
/etc/ansible/hosts文件参数说明:
<1>[master]:该主机组为kubernetes集群的主节点配置机器,上图中master为三台机器,是为了部署集群主节点为高可用,如果不想部署为高可用可填写一台机器;
<2>[etcd]:该主机组为部署etcd的主机,三台机器也是为了实现啊高可用,如果不想部署为高可用,则可以填写一台机器
<3>[node]:该主机组为kubernetes集群子节点主机,请填写集群子节点IP;
<4>[keepalived_master]:该主机组下填写keepalived主节点IP,填写一台机器的IP
<5>[keepalived_node]:该主机组下填写keepalived子节点,若只部署一台keepalived,该主机组下可以不写主机ip,但是主机组名称[keepalived_node]必须编写
<6>[all_host]:该主机组下包括所有的机器:主节点、子节点、keepalived机器、haproxy机器(备注:用户名和密码必须是root权限)
<7>[node_role]:改主机组下填写任意一台主节点的IP
<8>[ansible_host]:该主机组下填写ansible机器的IP,用户名和密码(备注:用户名和密码必须是root权限)
这里注意如果没有部署keepalive和haproxy的时候,相关的内容可以不用填写,当然下面的yaml文件需要相应的注释掉,注意virtual_ip.yaml这个文件的虚拟ip和端口还是需要的,即使不使用haproxy
3.8 安装kubernetes
在ansible机器root目录下解压完ansible脚本之后,进去到脚本的目录中:/root/ansible_install_k8s
修改以下文件
<1>varible.yaml这个文件中的IP是为了生成证书使用的,其中包括在/etc/ansible/hosts文件中[master]主机组下配置的IP以及一个虚拟IP(备注:虚拟IP是给haproxy用的,这个IP必须是一个没有被其他机器使用的IP并且该IP必须与其他机器的IP在同一个网段之内);
<2>virtual_ip.yaml这个文件是配置的虚拟IP,该IP与上面的虚拟IP必须相同
Port:集群通信端口(选择一个节点上未被使用的端口)
<3>该文件是haproxy的配置文件:与/etc/ansible/hosts文件中的[keepalived_node]主机组下的IP相同;
<4>etcd_hosts.yaml文件配置的是部署etcd的主机,必须与/etc/ansible/hosts文件中的[etcd]主机组中的IP相等,name是主机的名称;
<5>network.conf这个文件是flanneld的IP范围,可以填写图中值
以上文件中填写的值必须按照截图中的格式配置,不然会出错
注意如果没有安装部署keepalive和haproxy的话,在main.yaml中注释掉相应的命令
配置完上述文件之后,在/root/ansible_install_k8s目录下,执行ansible-playbook main.yaml这条命令,即开始安装集群;
Main。Yaml文件
创建ansible的地址 并启动
Install common.sh 初始化ansible
Offline_install_docker.yaml 离线安装docker(但是centos的) 上面都注释掉了
Dispatchkey.yaml 分给各个节点ansible证书
Create_ssl.yaml 这些就是创建证书并获得权限
create_kubectl_command.yaml 在virtual-ip.Yaml中的物理机安装 kubectl命令行工具并执行获取到ca.Pem admin.Pem admin.key
create_token.yaml 创建token.csv文件
copy_token.yaml 复制token.csv文件到个个主节点
create_kubeconfig.yaml 在ansible创建kubeconfig文件
deploy_etcd.yaml
对etcd—host.yaml文件进行部署ectd 并复制证书到个主机
下面启动etcd服务 和配置flannel 的网络段 也就是在开始修改的network。Conf这个文件。
online_install_docker.yaml
在线安装docker 如果已安装可以注释掉。
install_haproxy.yaml
在这个yaml文件中安装haproxy
这2个yaml文件是安装keeppalived