环境 | 版本 |
---|---|
OS | CentOS Linux release 7.4.1708 (Core) |
Kernel | Linux version 3.10.0-693.el7.x86_64 |
rke | v0.1.9 |
rancher | v2.0.8 |
docker | 1.13.1 |
主机名 | ip | 安装用户 | 操做系统 |
---|---|---|---|
rk1 | 192.168.0.130 | docker | CentOS Linux release 7.4 |
rk2 | 192.168.0.129 | docker | CentOS Linux release 7.4 |
setenforce 0 systemctl disable iptables-services firewalld systemctl stop iptables-services firewalld
vi /etc/selinux/config SELINUX=disabled service network restart
vi /etc/hosts 127.0.0.1 localhost 192.168.0.129 rk2 192.168.0.130 rk1
以rk1机器(192.168.0.130)为例node
1.登陆192.168.0.130linux
ssh root@192.168.0.130
2.修改主机名为rk1
nginx
vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=rk1 hostname rk1 hostnamectl set-hostname rk1
3.退出从新登陆查看是否生效git
[root@rk1 ~]# hostname rk1
#将安装rke用户加入docker组,建议安装用户选择非root用户 usermod -aG docker docker
修改/etc/fstab 注释掉如下配置项github
#/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
修改/etc/sysctl.confdocker
$ echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf $ systemctl restart network $ sysctl net.ipv4.ip_forward
登陆rk1json
$ ssh-keygen #生成公钥和私钥 $ ssh-copy-id docker@192.168.0.129 $ ssh-copy-id docker@192.168.0.130 #验证是否生效 [docker@rk1 ~]$ ssh docker@192.168.0.129 date Mon Aug 27 21:36:27 CST 2018
##备份原yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache
yum -y install docker service docker start ##查看docker版本 docker -v Docker version 1.12.6, build 3e8e77d/1.12.6
docker默认访问国外docker hub上镜像,速度较慢,能够替换成国内源,阿里和daocloud都有相关加速器,并且是永久免费,这里以daocloud为例.执行如下命令便可替换源(加速器是笔者的帐号永久免费能够放心使用)centos
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://41935bf4.m.daocloud.io
这个脚本在centos 7上有个bug,脚本会改变docker的配置文件/etc/docker/daemon.json
但修改的时候多了一个逗号,致使docker没法启动api
[root@docker /]# more /etc/docker/daemon.json {"registry-mirrors": ["http://41935bf4.m.daocloud.io"],}
将最后的逗号去掉便可,截止到写这篇文档(2018-08-28)该bug还还没有修复.
替换后重启docker便可bash
systemctl restart docker
重启服务器后须要从新启动docker服务不然集群没法正常安装
Rancher Kubernetes Engine(RKE)是rancher提供的一个快速安装kubernted集群工具,
使用Golang语言编写,可以实如今短期内部署高可用kubernetes集群环境,从而大大下降安装kubernetes成本.
RKE安装集群须要指定配置文件cluster.yml
,只要环境按照以上步骤预先配置好,只要一行命令就能安装Kubernetes
集群.
能够从https://github.com/rancher/rke/releases下载安装包,本文使用版本v0.1.9
.下载完后将安装包上传至任意节点.
这里提供一个简单版配置文件
nodes: - address: 192.168.0.130 user: docker role: - controlplane - etcd - worker - address: 192.168.0.129 user: docker role: - controlplane - etcd - worker cluster_name: mpaascluster
这里简单定义了两个节点,完整的配置清单能够打开https://rancher.com/docs/rke/v0.1.x/en/example-yamls/查看.
将cluster.yml
和rke的安装包rke_linux-amd64
放到同一个目录下,并在终端将当前目录cd到当前两个文件所在目录.执行如下命令
chmod +x rke_linux-amd64 ./rke_linux-amd64 up
若是运行正常,看到如下输出表明安装成功
.... INFO[0018] [addons] Saving addon ConfigMap to Kubernetes INFO[0018] [addons] Successfully Saved addon to Kubernetes ConfigMap: rke-metrics-addon INFO[0018] [addons] Executing deploy job.. INFO[0018] [addons] KubeDNS deployed successfully.. INFO[0018] [ingress] Setting up nginx ingress controller INFO[0018] [addons] Saving addon ConfigMap to Kubernetes INFO[0018] [addons] Successfully Saved addon to Kubernetes ConfigMap: rke-ingress-controller INFO[0018] [addons] Executing deploy job.. INFO[0018] [ingress] ingress controller nginx is successfully deployed INFO[0018] [addons] Setting up user addons INFO[0018] [addons] no user addons defined INFO[0018] Finished building Kubernetes cluster successfully
此时在该目录下会生成一个kube_config_cluster.yml
文件,这个文件下面会用到.
kubectl是和kuberneter交互的工具,也就是kubernnetes-cli
.经过该工具能够在本地执行kubernetes api
kubectl安装能够参考https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl,以MacOS
为例,只要执行如下命令就能完成安装,仍是很是的简单.
brew install kubernetes-cli
安装完后将上面rke生成的文件kube_config_cluster.yml
拷贝到本地~/.kube/
目录下,执行如下命令验证是否集群链接成功
$ kubectl --kubeconfig kube_config_cluster.yml get nodes NAME STATUS ROLES AGE VERSION 192.168.0.129 Ready controlplane,etcd,worker 2h v1.11.1 192.168.0.130 Ready controlplane,etcd,worker 2h v1.11.1
RKE只是负责kubernetes集群的安装,并无安装Rancher server
.Rancher server须要独立安装.这里很是不建议rancher和kubernetes安装在同一台主机上,主要是会有端口冲突,虽然能够经过端口映射解决,但不管是修改kubernetes仍是rancher都比较麻烦.
这里在新的一台主机上192.168.0.118
安装Rancher server,版本为2.0.8
,Rancher安装相对比较简单,执行如下命令就能完成安装
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.0.8
https://192.168.0.118
,若是提示证书错误,忽略便可.admin
.全局->添加集群
,添加集群.import
方式导入,输入集群名称点击建立
.kubectl --kubeconfig kube_config_cluster.yml apply -f https://192.168.0.118/v3/import/xxxxxxxxxxxxxx.yaml
若是由于Rancher正在使用不受信任/自签名的SSL证书运行而出现"由未知颁发机构签名的证书"错误, 请运行下面的命令以绕过证书检查:
curl --insecure -sfL https://192.168.0.118/v3/import/xxxxxxxxxxx.yaml | kubectl --kubeconfig kube_config_cluster.yml apply -f -
若是出现如下错误
Unable to connect to the server: x509: certificate signed by unknown authority
能够忽略,集群仍是会正常导入
至此rancher 2.0集群安装完毕