简要说明:

RKE (Rancher Kubernetes Engine)是RancherLabs提供的一个工具,可以在裸机、虚拟机、公私有云上快速安装Kubernetes集群。整个集群的部署只需要一个命令、一个配置文件,解决了如何轻松部署Kubernetes的问题。

尽管Rancher提供了免费的视频培训(见后面的参考链接),但用户在使用RKE时,还是会遇到了很多报错信息,无法安装成功,这主要是因为一些基本的前置条件没有满足。

为了用户使用RKE部署Kubernetes更顺利,有必要梳理一下,把部署要点整理出来,让使用RKE的用户少走弯路。

部署要点:

系统版本

建议使用Ubuntu 16.04.3 LTS版本,如果是CentOS7,建议7.3以上版本;

Docker版本:

RKE在Github上的readme中已有说明,Kubernetes1.8需要Docker 1.12.6、1.13.1、17.03,Kubernetes1.8不支持更高版本的Docker;

主机名:

如果是克隆的系统一定要修改主机名,hostname主机名必须不同!

主机文件:

/etc/hosts要配置正确,一定要有127.0.0.1 localhost 这一项。Hosts文件中包含所有主机节点的IP和名称列表。使用vi进行编辑,不能使用中文全角的空格;

SELinux:

必须关闭!Ubuntu 16.04默认未安装,无需设置。CentOS7下可修改配置文件/etc/sysconfig/selinux,设置SELINUX=disabled ,重启后永久关闭。

IPV4转发

必须开启!Ubuntu 16.04下默认已启用,无需设置。CentOS7 下可编辑配置文件/etc/sysctl.conf,设置启用转发,

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

执行sudo sysctl -p 立刻生效。

防火墙:

开放集群主机节点之间6443、2379、2380端口,如果是刚开始试用,可以先关闭防火墙;Ubuntu默认未启用UFW防火墙,无需设置。也可手工关闭:sudo ufw disable

禁用SWAP:

一定要禁用swap,否则kubelet组件无法运行,永久禁用swap可以直接修改/etc/fstab文件,注释掉swap项。swapoff -a 只是临时禁用,下次关机重启又恢复原样;

启用Cgroup:

修改配置文件/etc/default/grub,启用cgroup内存限额功能,配置两个参数:

GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

注意:要执行sudo update-grub 更新grub,然后重启系统后生效。

SSH免密登录:

RKE通过SSH tunnel进行安装部署,需要事先建立RKE到各节点的SSH免密登录。如果集群中有5个节点,需要在RKE机器上执行1遍秘钥生成命令ssh-keygen +5次公钥分发命令ssh-copy-id user1@节点IP。如果执行RKE的本机也要加入到K8S集群中,也要使用ssh-copy-id user1@本机IP,将公钥分发到本机,对本机执行ssh免密配置,否则也会报错。免密配置方法:http://blog.csdn.net/csdn_duomaomao/article/details/79164073 。

RKE部署用户:

1、RKE部署用户是cluster.yml配置文件中的用户,也就是上述能ssh免密登录到其他机器的用户;

2、CentOS7不能用root用户,Ubuntu既可用root也可用普通用户;

3、如果使用普通用户进行RKE安装,要将普通用户(如user01)加入到docker组,命令:sudo usermod -aG docker user01  注意:重启系统以后才能生效,只重启Docker服务是不行的!重启后,user01用户也可以直接使用docker run命令。

4、在Ubuntu上使用apt安装完docker后,会自动创建docker用户组,无需手工创建docker组,只需要将部署RKE的用户(如user01)加入到docker组即可,查看是否存在docker组、以及user01用户是否在docker组中,可以直接查看/etc/group文件;

*5、如果Ubuntu使用root用户进行RKE安装,需要配置sshd服务,修改配置文件/etc/ssh/sshd_config,将PermitRootLogin prohibit-password 改为PermitRootLogin yes ,允许root远程ssh登录;取消注释#AuthorizedKeysFile   %h/.ssh/authorized_keys ,允许记录授权秘钥文件;

关键截图:

01-创建user01用户,将user01加入到docker组中

02-修改GRUB配置文件,启用cgroup内存限额功能

03-修改etc下fstab文件,永久禁用swap

04-ubuntu下如果使用root用户进行安装,需要修改ssh配置,允许root远程登录

05-RKE安装部署过程1

06-RKE安装部署过程2

07-RKE安装部署过程3

01-创建user01用户,将user01加入到docker组中

02-修改GRUB配置文件,启用cgroup内存限额功能

03-修改etc下fstab文件,永久禁用swap

04-ubuntu下如果使用root用户进行安装,需要修改ssh配置,允许root远程登录

05-RKE安装部署过程1

06-RKE安装部署过程2

07-RKE安装部署过程3

 

 

参考配置文件:

一个可用的cluster.yml配置文件:

---

auth:

strategy: x509

options:

foo: bar

# supported plugins are:

# flannel

# calico

# canal

# weave

#

# If you are using calico on AWS, use the network plugin config option:

# 'cloud_provider: aws'

network:

plugin: flannel

options:

flannel_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/flannel

flannel_cni_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/flannel-cni

nodes:

- address: 192.168.3.161

user: user01

role: [controlplane, etcd]

ssh_key_path: ~/.ssh/id_rsa

- address: 192.168.3.162

user: user01

role: [worker]

ssh_key_path: ~/.ssh/id_rsa

- address: 192.168.3.163

user: user01

role: [worker]

ssh_key_path: ~/.ssh/id_rsa

services:

etcd:

image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/etcd:latest

kube-api:

image: rancher/k8s:v1.8.3-rancher2

service_cluster_ip_range: 10.233.0.0/18

pod_security_policy: false

extra_args:

v: 4

kube-controller:

image: rancher/k8s:v1.8.3-rancher2

cluster_cidr: 10.233.64.0/18

service_cluster_ip_range: 10.233.0.0/18

scheduler:

image: rancher/k8s:v1.8.3-rancher2

kubelet:

image: rancher/k8s:v1.8.3-rancher2

cluster_domain: cluster.local

cluster_dns_server: 10.233.0.3

infra_container_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/pause-amd64:3.0

command: --fail-swap-on=false

kubeproxy:

image: rancher/k8s:v1.8.3-rancher2

system_images:

alpine: alpine:latest

nginx_proxy: rancher/rke-nginx-proxy:0.1.0

cert_downloader: rancher/rke-cert-deployer:0.1.0

kubedns_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/k8s-dns-kube-dns-amd64:1.14.5

dnsmasq_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/k8s-dns-dnsmasq-nanny-amd64:1.14.5

kubedns_sidecar_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/k8s-dns-sidecar-amd64:1.14.5

kubedns_autoscaler_image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/cluster-proportional-autoscaler-amd64:1.0.0

# all addon manifests MUST specify a namespace

addons: |-

---

apiVersion: v1

kind: Pod

metadata:

name: my-nginx

namespace: default

spec:

containers:

- name: my-nginx

image: nginx

ports:

- containerPort: 80

 

参考链接:

RKE快速上手指南:开源的轻量级K8S安装程序

https://www.cnrancher.com/an-introduction-to-rke/

免费视频培训:如何安装使用RKE

http://www.itdks.com/liveevent/detail/8343

RKE 简介

https://github.com/rancher/rke

RKE工具下载页面

https://github.com/rancher/rke/releases/

RKE cluster.yml 文件说明

https://github.com/rancher/rke/blob/master/cluster.yml

使用Rancher的RKE部署Kubernetes要点的更多相关文章

  1. 使用Rancher的RKE快速部署Kubernetes集群

    简要说明: 本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163). 先在Windows机器上,将rke_linu ...

  2. [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  3. 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群

    手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm ,Kubespray,RKE 等组件,我最终选择了官方的 Kubeadm 主要是 ...

  4. [原]CentOS7安装Rancher2.1并部署kubernetes (三)---解决登录kubernets超时和部署测试Pod和Containter[nginx为例]

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  5. [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  6. [原]部署kubernetes dashboard(二)

    #######################    以下为声明  ##################### 此文档是之前做笔记在两台机上进行的实践,kubernetes处于不断开发阶段 不能保证每 ...

  7. [原]使用kubeadm部署kubernetes(一)

    #######################    以下为声明  ##################### 在公众号  木子李的菜田 输入关键词:   k8s 有系列安装文档 此文档是之前做笔记在 ...

  8. Docker容器管理平台Rancher高可用部署——看这篇就够了

    记得刚接触Rancher时,看了官方文档云里雾里,跟着官网文档部署了高可用Rancher,发现不管怎么折腾都无法部署成功(相信已尝试的朋友也有类似的感觉),今天腾出空来写个总结,给看到的朋友留个参考( ...

  9. 和我一步步部署 kubernetes 集群

    和我一步步部署 kubernetes 集群 本系列文档介绍使用二进制部署最新 kubernetes v1.6.1 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群: 在部署的过程中, ...

随机推荐

  1. react复习总结(2)--react生命周期和组件通信

    这是react项目复习总结第二讲, 第一讲:https://www.cnblogs.com/wuhairui/p/10367620.html 首先我们来学习下react的生命周期(钩子)函数. 什么是 ...

  2. manytomany django 正查, 反查

    models from django.db import models from django.contrib.auth.models import User class GroupSheet(mod ...

  3. PHP结合Vue实现上拉分页

    效果图: <?php if(isset($_GET['data'])){ $data = [ [ 'title'=>1], [ 'title'=>2], [ 'title'=> ...

  4. mysql 5.7多源复制(用于生产库多主库合并到一个查询从库)

    目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下. 这就涉及到多个主库数据 ...

  5. Kali linux 2018安装后全屏乱码解决

    安装的时候选择了中文, 后来安装成功后成了全部乱码的. 原因是,系统没有中文字体显示安装包, 下载一个 sudo apt-get install ttf-wqy-zenhei 重启解决!

  6. 让bat批处理后台运行,不显示cmd窗口(完全静化)

    背景:由于我有某云的服务器(win server), 上面挂有好几个程序, 为了更好的监控他们, 我使用了一个最笨的方法, 就是下面的方法. 实现:我要监控的程序有三个, 成为ABC吧, 下面先把三个 ...

  7. 快速阅读《QT5.9 c++开发指南》2

    1.sample2_2 信号和槽 MFC中最让人印象深刻的就是"消息映射",这里有理由相信,"信号和槽"是这种功能的发扬和扩展.通过简单的 connect(ui ...

  8. C语言动态链表数据结构实现的学生信息项目

    注:此项目来源于吕鑫老师的教程 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <conio.h> u ...

  9. 3.sql2008查询

    根据需要和条件,查看并显示结果集,如果需要,可将结果集生成数据表select:查什么,列筛选,可以用*代表全部列from:在哪个表中查,where:符合什么样的条件,行筛选select:       ...

  10. Oracle错误——ORA-01691: Lob 段SFZXP.SYS_LOB0000030381C00004$$无法通过8192(在表空间USERS中)扩展

    问题 Oracle报错:ORA-01691: Lob 段SFZXP.SYS_LOB0000030381C00004$$无法通过8192(在表空间USERS中)扩展 问题原因 Oracle数据表空间不足 ...