docker kuberbetes 管理平台安装 过程

 首先基础安装

1ubuntu 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.62.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,使用以下命令安装PythonUbuntu):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 dashroot权限)在选择界面选择no,这样.sh脚本就可以解析了;【解决Ubuntu系统shellsourcenot found 错误】 注意这里的机器上都需要这样指定  

 

3.7 配置ansiblehosts文件

安装完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权限

这里注意如果没有部署keepalivehaproxy的时候,相关的内容可以不用填写,当然下面的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这个文件是flanneldIP范围,可以填写图中值

以上文件中填写的值必须按照截图中的格式配置,不然会出错

 

 

注意如果没有安装部署keepalivehaproxy的话,在main.yaml中注释掉相应的命令

配置完上述文件之后,在/root/ansible_install_k8s目录下,执行ansible-playbook main.yaml这条命令,即开始安装集群;

 

 

MainYaml文件  

 

 

创建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

etcdhost.yaml文件进行部署ectd 并复制证书到个主机

 

下面启动etcd服务  和配置flannel 的网络段   也就是在开始修改的networkConf这个文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

online_install_docker.yaml

在线安装docker  如果已安装可以注释掉。

 

install_haproxy.yaml

在这个yaml文件中安装haproxy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2yaml文件是安装keeppalived

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值