安装 k8s 集群 Rancher RKE

内核

K8S 1.18开始使用了IPVS 所以4.x以下的内核无法再运行K8S 网络会有BUG 官方推荐4.19LTS及以上的内核

查看内核版本

uname -smr
建议升级到最新的长期支持版本

升级内核

安装 Docker

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io

启动 Docker

systemctl enable docker
systemctl start docker

安装 Rancher RKE

禁用 SELinux
/usr/sbin/sestatus -v |grep "SELinux status"
#结果为 enabled 为启用状态
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
禁用 swap
free -h
#total        used        free      shared  buff/cache   available
#Mem:           7.8G        205M        6.9G        8.7M        715M        7.3G
#Swap:          5.0G          0B        5.0G
#Swap 有值代表启用了swap
vim /etc/fstab
使用 # 注释掉有 swap 的一行
关闭防火墙
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service 
重启查看修改是否生效
reboot
/usr/sbin/sestatus -v |grep "SELinux status"
free -h
CentOS7不能使用root用户安装
adduser RKE -G docker
#设置 RKE 用户密码
passwd RKE 
#尝试使用rancher用户操作docker,观察是否有权限
su RKE
docker ps
配置主节点到各个节点rancher用户的免密登录
#一路回车按到底
ssh-keygen
ssh-copy-id RKE@节点IP

# 这个地方要给全部的机器配置ssh,包括自己
比如我有 172.12.17.167 172.12.17.166 两台机器
#在 172.12.17.167 上执行
ssh-keygen
ssh-copy-id RKE@172.12.17.167
ssh-copy-id RKE@172.12.17.166

#在 172.12.17.166 上执行
ssh-keygen
ssh-copy-id RKE@172.12.17.166
ssh-copy-id RKE@172.12.17.167

#如何有新的节点加入也需要在所以机器上配置ssh

#测试 ssh 并执行 docker ps 看是否正常工作
ssh  RKE@节点IP
docker ps
下载Rancher RKE 文件
cd /home/RKE
wget https://github.com/rancher/rke/releases/download/v1.2.5/rke_linux-amd64
chmod +x rke_linux-amd64

配置 rke_linux-amd64

只需要选择一台安装rke_linux-amd64,就可以完成整个集群的安装

./rke_linux-amd64 config
[+] Cluster Level SSH Private Key Path [~/.ssh/id_rsa]: ~/.ssh/id_rsa
[+] Number of Hosts [1]: 2
[+] SSH Address of host (1) [none]: 172.12.17.167
[+] SSH Port of host (1) [22]:
[+] SSH Private Key Path of host (172.12.17.167) [none]: ~/.ssh/id_rsa
[+] SSH User of host (172.12.17.167) [ubuntu]: RKE
[+] Is host (172.12.17.167) a Control Plane host (y/n)? [y]: y
[+] Is host (172.12.17.167) a Worker host (y/n)? [n]: n
[+] Is host (172.12.17.167) an etcd host (y/n)? [n]: y
[+] Override Hostname of host (172.12.17.167) [none]: hw-k8s-master
[+] Internal IP of host (172.12.17.167) [none]:
[+] Docker socket path on host (172.12.17.167) [/var/run/docker.sock]:
[+] SSH Address of host (2) [none]: 172.12.17.166
[+] SSH Port of host (2) [22]:
[+] SSH Private Key Path of host (172.12.17.166) [none]: ~/.ssh/hys
[+] SSH User of host (172.12.17.166) [ubuntu]: RKE
[+] Is host (172.12.17.166) a Control Plane host (y/n)? [y]: n
[+] Is host (172.12.17.166) a Worker host (y/n)? [n]: y
[+] Is host (172.12.17.166) an etcd host (y/n)? [n]: n
[+] Override Hostname of host (172.12.17.166) [none]: hw-k8s-worker1
[+] Internal IP of host (172.12.17.166) [none]:
[+] Docker socket path on host (172.12.17.166) [/var/run/docker.sock]:
[+] Network Plugin Type (flannel, calico, weave, canal) [canal]:
[+] Authentication Strategy [x509]:
[+] Authorization Mode (rbac, none) [rbac]:
[+] Kubernetes Docker image [rancher/hyperkube:v1.19.4-rancher1]:
[+] Cluster domain [cluster.local]:
[+] Service Cluster IP Range [10.43.0.0/16]:
[+] Enable PodSecurityPolicy [n]:
[+] Cluster Network CIDR [10.42.0.0/16]:
[+] Cluster DNS Service IP [10.43.0.10]:
[+] Add addon manifest URLs or YAML files [no]:
./rke_linux-amd64 up
当看到 INFO[0294] Finished building Kubernetes cluster successfully
恭喜你安装集群成功
配置使用 kubectl
mkdir ~/.kube
#kube_config_cluster.yml 集群安装成功后自动生成
cp kube_config_cluster.yml ~/.kube/config

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
./kubectl get pod -A
[RKE@adsl-172-12-17-167 ~]$ ./kubectl get pod -A
NAMESPACE       NAME                                       READY   STATUS      RESTARTS   AGE
ingress-nginx   default-http-backend-65dd5949d9-sldzj      1/1     Running     0          23m
ingress-nginx   nginx-ingress-controller-7np89             1/1     Running     0          7m53s
kube-system     calico-kube-controllers-7fbff695b4-84hln   1/1     Running     0          24m
kube-system     canal-2jtlg                                2/2     Running     0          24m
kube-system     canal-bbh56                                2/2     Running     0          8m23s
kube-system     coredns-6f85d5fb88-sqvgp                   1/1     Running     0          24m
kube-system     coredns-autoscaler-79599b9dc6-5r4kv        1/1     Running     0          24m
kube-system     metrics-server-8449844bf-74jwk             1/1     Running     0          24m
kube-system     rke-coredns-addon-deploy-job-lq9fb         0/1     Completed   0          24m
kube-system     rke-ingress-controller-deploy-job-hhm6c    0/1     Completed   0          23m
kube-system     rke-metrics-addon-deploy-job-fwhx5         0/1     Completed   0          24m
kube-system     rke-network-plugin-deploy-job-8pwmh        0/1     Completed   0          25m

查看节点信息

[RKE@adsl-172-12-17-167 ~]$ ./kubectl get node
NAME             STATUS   ROLES               AGE   VERSION
hw-k8s-master    Ready    controlplane,etcd   52m   v1.19.7
hw-k8s-worker1   Ready    worker              35m   v1.19.7

扩容 Rancher RKE

配置 新节点 ssh

# 添加了一个新节点 172.12.17.165
#在新节点 172.12.17.165 上执行
ssh-keygen
ssh-copy-id RKE@172.12.17.165
ssh-copy-id RKE@172.12.17.166
ssh-copy-id RKE@172.12.17.167

#在 172.12.17.167
ssh-keygen //已经执行过不必再执行
ssh-copy-id RKE@172.12.17.165
ssh-copy-id RKE@172.12.17.167 //已经执行过不必再执行
ssh-copy-id RKE@172.12.17.166 //已经执行过不必再执行

#在 172.12.17.166

ssh-keygen //已经执行过不必再执行
ssh-copy-id RKE@172.12.17.165
ssh-copy-id RKE@172.12.17.167 //已经执行过不必再执行
ssh-copy-id RKE@172.12.17.166 //已经执行过不必再执行

添加新的 node 信息到安装阶段 rke_linux-amd64 生成的 cluster.yml

添加前

#只展示nodes的信息,其他信息忽略
nodes:
- address: 172.12.17.166
  port: "22"
  internal_address: ""
  role:
  - controlplane
  - etcd
  hostname_override: hw-k8s-master
  user: RKE
  docker_socket: /var/run/docker.sock
  ssh_key: ""
  ssh_key_path: ~/.ssh/id_rsa
  ssh_cert: ""
  ssh_cert_path: ""
  labels: {}
  taints: []
- address: 172.12.17.167
  port: "22"
  internal_address: ""
  role:
  - worker
  hostname_override: hw-k8s-worker1
  user: RKE
  docker_socket: /var/run/docker.sock
  ssh_key: ""
  ssh_key_path: ~/.ssh/id_rsa
  ssh_cert: ""
  ssh_cert_path: ""
  labels: {}
  taints: []

添加后

#只展示nodes的信息,其他信息忽略
nodes:
- address: 172.12.17.166
  port: "22"
  internal_address: ""
  role:
  - controlplane
  - etcd
  hostname_override: hw-k8s-master
  user: RKE
  docker_socket: /var/run/docker.sock
  ssh_key: ""
  ssh_key_path: ~/.ssh/id_rsa
  ssh_cert: ""
  ssh_cert_path: ""
  labels: {}
  taints: []
- address: 172.12.17.167
  port: "22"
  internal_address: ""
  role:
  - worker
  hostname_override: hw-k8s-worker1
  user: RKE
  docker_socket: /var/run/docker.sock
  ssh_key: ""
  ssh_key_path: ~/.ssh/id_rsa
  ssh_cert: ""
  ssh_cert_path: ""
  labels: {}
  taints: []
- address: 172.12.17.165
  port: "22"
  internal_address: ""
  role:
  - worker
  hostname_override: hw-k8s-worker2
  user: RKE
  docker_socket: /var/run/docker.sock
  ssh_key: ""
  ssh_key_path: ~/.ssh/id_rsa
  ssh_cert: ""
  ssh_cert_path: ""
  labels: {}
  taints: []

在线扩容

./rke_linux-amd64 up --update-only
当看到 INFO[0294] Finished building Kubernetes cluster successfully
恭喜你扩容集群成功

查看节点信息

[RKE@adsl-172-12-17-167 ~]$ ./kubectl get node
NAME             STATUS   ROLES               AGE   VERSION
hw-k8s-master    Ready    controlplane,etcd   52m   v1.19.7
hw-k8s-worker1   Ready    worker              35m   v1.19.7
hw-k8s-worker2   Ready    worker              86s   v1.19.7
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容