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

摘要:
简要描述:本文涉及三台Ubuntu机器、一台RKE部署机器和两台Kubernetes集群机器。默认情况下,Ubuntu是启用的,不需要设置。手动关闭UFW:sudoufwdisable#9。使用配置文件中的部署用户建立单向ssh通道。从RKE所在的机器到Kubernetes集群机器,建立单向无密码登录(即通道)catty@192.168.3.161:ssh keygen#输入三次以生成ssh公钥和私钥文件catty@192.168.3.161 : ssh-copy-idcatty@192.168.3.162#向162机器分发公钥catty@192.168.3.161 : ssh-copy-idcatty@192.168.3.163#将公钥分发给163机器#注意:不要使用sudosh copy id,它将成为root用户登录名。

简要说明:

本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163)。

先在Windows机器上,将rke_linux-amd64从github上下载下来,重新命名为rke ,编辑好cluster.yml集群部署文件,使用putty提供的pscp命令,将文件上传到3.161机器上。在3.161机器上,执行rke命令,将集群部署到3.162和3.163机器上。

只要环境配置正确,部署非常快,整个集群5分钟搞定。

准备工作:

# 1、Ubuntu 16.04.3 LTS + Docker 1.12.6 系统安装、网络基础设置

# 2、将普通用户加入到Docker组。(sudo reboot重启机器才能生效)

sudo usermod -aG docker catty

sudo reboot

# 3、启用cgroup内存和Swap限额,修改/etc/default/grub 配置文件,修改/增加两项:

GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

# 更新grub,重启系统后生效

sudo update-grub

sudo reboot

# 4、永久禁用交换分区,直接修改/etc/fstab文件,注释掉swap项

sudo vi /etc/fstab

# 5、修改/etc/hosts主机名文件,设置127.0.0.1 localhost主机名

# 6、禁用SELinux,Ubuntu默认未安装,无需设置。

# *可以先安装selinux工具包,然后使用getenforce工具查看SELinux状态。

sudo apt install selinux-utils

sudo getenforce

# 7、启用ipv4转发。Ubuntu默认已启用,无需设置。

# 可以查看内核参数文件 /proc/sys/net/ipv4/ip_forward ,值为1,表示启用。

# 也可以在/etc/sysctl.conf配置文件中强制指定 net.ipv4.ip_forward=1,重启生效。

# 8、关闭ufw防火墙,Ubuntu默认未启用,无需设置。手工关闭UFW:

sudo ufw disable

# 9、使用配置文件中的部署用户,建立ssh单向通道,在RKE所在机器到Kubernetes集群机器,建立单向免密登录(即通道)

catty@192.168.3.161: ssh-keygen  #三次回车,生成ssh公钥和私钥文件

catty@192.168.3.161: ssh-copy-id catty@192.168.3.162  #将公钥分发给162机器

catty@192.168.3.161: ssh-copy-id catty@192.168.3.163  #将公钥分发给163机器

# 注意:不要使用sudo ssh-copy-id ,这样会变成root用户登录。

# 验证是否可以直接免密登录:

catty@192.168.3.161: ssh 192.168.3.162

exit

catty@192.168.3.161: ssh 192.168.3.163

exit

# 10、修改cluster.ym集群部署配置文件,避免使用gcr.io镜像,可用的文件附后

安装部署:

# 11、将rke工具下载下来,通过putty的pscp命令,拷贝到161机器的/home/catty目录下,

# 将RKE程序和cluster.yml配置文件放到Windows机器上的putty目录下:

pscp rke 192.168.3.161:/home/catty

pscp cluster.yml 192.168.3.161:/home/catty

# 到161的/home/catty目录下,增加RKE文件的可执行权限,

chmod +x rke

# 一切就绪,在161机器上,执行部署命令

./rke up --config cluster.yml

# 结束。

可用的配置文件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.162

    user: catty

    role: [controlplane, etcd]

    ssh_key_path: ~/.ssh/id_rsa

  - address: 192.168.3.163

    user: catty

    role: [worker]

    ssh_key_path: ~/.ssh/id_rsa

#  - address: 192.168.3.164

#    user: catty

#    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

运行截图:

01-执行rke命令,部署Kubernetes集群1

01-执行rke命令,部署Kubernetes集群1

02-执行rke命令,部署Kubernetes集群2

02-执行rke命令,部署Kubernetes集群2

03-执行rke命令,部署Kubernetes集群3

03-执行rke命令,部署Kubernetes集群3

04-执行rke命令,部署Kubernetes集群4

04-执行rke命令,部署Kubernetes集群4

参考链接:

使用Rancher的RKE部署Kubernetes要点

http://blog.csdn.net/csdn_duomaomao/article/details/79317846

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集群》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇去除 UTF-8 文件 BOM 头springboot 加载自定义yml文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux命令行下修改系统时间、时区

date查看时间以及时区 图a是est时区,和HONGkong时间查了一个小时。 # 保存设置$ sudo mv /etc/localtime /etc/localtime.old # 设置时区 $ sudo ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime # 这里已经改完了 # 更新...

OpenSSH 命令注入漏洞(CVE202015778)

最近看好多大佬都在复现这个OpenSSH命令注入漏洞,作为菜鸡的我也要跟随大佬的脚步,也来复现一波(不分析漏洞原理,本人是菜鸡,能力不足)。再写这篇博客很不幸的我(电脑蹦了重启,写好的都没保存),不放弃继续重新来一遍。 介绍 2020年6月9日,研究人员Chinmay Pandya在Openssh中发现了一个漏洞,于7月18日公开。OpenSSH的8.3...

scp命令详解

先说下常用的情况: 两台机器IP分别为:A.104.238.161.75,B.43.224.34.73。 在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:scp -r root@43.224.34.73:/home/lk /root。 具体过程为: [root@XX ~]# scp -r ro...

树莓派(Linux)添加USB外接硬盘

1、显示系统的硬盘设备以及分区 sudo fdisk -l 显示设备名,例如/dev/sda1 2、树莓派默认不支持NTFS文件系统,如果需要支持则要安装相应的软件包 sudo apt-get install ntfs-3g 安装支持NTFS文件系统的软件包 sudo reboot 重新启动后才有效 3、在树莓派上建立挂载点 sudo mkdir...

向 Git 服务器添加 SSH 公钥

在网上很少找到文章有提到如何将自己的 Git 远程仓库配置成可以通过 SSH 公钥方式认证的,而几乎清一色都是告诉你怎么通过 web 界面向 GitHub 添加 SSH 公钥。LZ 在网上查找了一番,终于找到了办法。 对于不想看 LZ 下面罗嗦了一大堆的园友,LZ 先把结论放在这里,直接拿去用就是了。 把本地用户的 ~/.ssh/id_rsa.pub 的内...

转:Linux 编译安装 Mysql5.7

http://broqiang.com/2017/04/18/Mysql-Install-5.7.18-Linux-Compile/ 原文 Linux 编译安装 Mysql5.7 Ubuntu 下快速安装直接 apt 方式即可, 一般的开发环境也足够了 个人比较喜欢新版本,一般有新版本就会尝试一下 此文档适用于 Ubuntu 16.10 和 CentOS...