码迷,mamicode.com
首页 > Web开发 > 详细

使用Rancher的RKE部署Kubernetes要点

时间:2018-02-12 18:45:16      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:mem   视频   lease   关闭   nload   keygen   系统   lin   用户组   

简要说明:

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:

必须关闭!CentOS下可修改配置文件/etc/sysconfig/selinux,设置SELINUX=disabled ,重启后永久关闭。

IPV4转发

必须开启!编辑配置文件/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端口,如果是刚开始试用,可以先关闭防火墙;

禁用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"

SSH免密互信:

RKE通过SSH tunnel进行安装部署,需要事先在各节点之间配置SSH免密互信。如果集群中有5个节点,需要在5台机器上分别执行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

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要点

标签:mem   视频   lease   关闭   nload   keygen   系统   lin   用户组   

原文地址:https://www.cnblogs.com/rancher-maomao/p/8445111.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!