简要说明:
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.61.13.117.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 立刻生效
防火墙:
开放集群主机节点之间 644323792380 端口, 如果是刚开始试用, 可以先关闭防火墙;
禁用 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 部署用户:
1RKE 部署用户是 cluster.yml 配置文件中的用户, 也就是上述能 ssh 免密登录到其他机器的用户;
2CentOS7 不能用 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
来源: http://www.bubuko.com/infodetail-2496665.html