简要说明:

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. 通过数组和枚举简化GPIO操作编码(转)

    源: 通过数组和枚举简化GPIO操作编码

  2. Linux的简单介绍.

    Linux操作系统概述: Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linux Torvalds(林纳斯·托瓦兹)起初开发 ...

  3. oracle 12cR1&12cR2核心高实用性新特性

    今天把本地环境升到了12.2.12c应该来说无论从性能和功能性方面都得到了很大的加强,就是不知道实际license怎么卖...原来有些功能在exadata中可用的,现在在12c中可用了,估计很大程度上 ...

  4. 牛客练习赛24题解(搜索,DP)

    A题,C题不讲,基础题(但是我要抨击一下这次比赛,卡cin,cout,卡的太狠了,根本就不让过的那种,QAQ) 链接:https://www.nowcoder.com/acm/contest/157/ ...

  5. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 828D) - 贪心

    Arkady needs your help again! This time he decided to build his own high-speed Internet exchange poi ...

  6. 【python018--函数参数】

    1.形参和实参 >>> def MyFirstFunction(name):    '函数定义过程中的name是叫形参'    #因为Ta只是一个形式,表示占据一个参数位置    p ...

  7. python --- 22 初始模块 random time collections functools

    一 .初始模块 1.从⼩到⼤的顺序: ⼀条代码 < 语句块 < 代码块(函数, 类) < 模块 2.引入模块的方式 ①   import   模块 ②   from   模块  im ...

  8. ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(4)

    6.Options TCustomDADataSet的选择项为TDADataSetOptions,其成员介绍如下表 : 名称 类型 说明 TDADataSetOptions AutoPrepare B ...

  9. 简单明了的掌握diff命令? 参考: http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html

    diff是比较两个 文本文件, 或目录,(中名字相同的文件) diff 是按行来比较的, 只要两个对应的行, 不完全一致, 就报告为不同, 否则就视为相同. (一行中任意一点的不同...) 检查时, ...

  10. Directional RNA-seq data -which parameters to choose?

    Directional RNA-seq data -which parameters to choose? REF: https://chipster.csc.fi/manual/library-ty ...