使用RKE安装K8S集群
前言
本文的云主機(jī)或虛擬機(jī)默認(rèn)為Centos7,虛擬機(jī)的宿主機(jī)默認(rèn)win10操作系統(tǒng)
1.前置準(zhǔn)備
1.1 基礎(chǔ)環(huán)境準(zhǔn)備
1.使用云主機(jī),或者Virtualbox+Vagrant安裝Centos7 安裝Centos7 (建議3臺以上,每臺機(jī)器 4 GB 以上的內(nèi)存,內(nèi)存不足時應(yīng)用會受限制。用作控制平面節(jié)點(diǎn)的計算機(jī)上至少有2個 CPU)
第二種需先安裝VirtualBox和Vagrant[需要注意二者的版本兼容]
使用vagrant其配置文件Vagrantfile可以參考如下(3節(jié)點(diǎn)集群):
配置完成后
2.運(yùn)行vagrant up指令生成3臺虛擬機(jī)
1.2 docker環(huán)境準(zhǔn)備
1.由于docker對內(nèi)核有一定要求 我們可以先升級內(nèi)核
具體指令參考如下:
查看內(nèi)核版本 —這里的內(nèi)核版本(3.10)和系統(tǒng)架構(gòu)(64位)
uname -smr
更新軟件包倉庫
yum update
啟用Elrepo庫
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安裝 Elrepo 軟件庫
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
列出可用的內(nèi)核版本
yum list available --disablerepo=‘*’ --enablerepo=elrepo-kernel
kernel-lt表示一個穩(wěn)定的LTS(長期支持)版本,而kernel-ml表示一個提供短期支持但提供更頻繁更新的
設(shè)置新的默認(rèn)啟動項(xiàng)
grub2-set-default 0
重啟后查看版本
reboot //重啟
uname -smr //查看版本
2.基本docker安裝
查看系統(tǒng)要求
Docker 要求 CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 ,查看CentOS的內(nèi)核版本。
uname -a
刪除舊版本
yum remove docker docker-common docker-selinux docker-engine
安裝需要的軟件包
yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅(qū)動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
設(shè)置Docker yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝docker
sudo yum install docker-ce
如果要安裝特定版本:
sudo yum install docker-ce-18.06.1.ce
啟動
設(shè)置為開機(jī)啟動
systemctl enable docker
啟動
systemctl start docker
查看啟動狀態(tài)
systemctl status docker
查看版本
docker version
2.正式安裝
2.1 安裝kubectl
注意Linux命令引號的格式
針對集群的三臺機(jī)器安裝Kubectl
curl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl” && chmod +x kubectl && cp kubectl /usr/bin/
國內(nèi)備用 curl -fL “https://kinshy-generic.pkg.coding.net/south/study/kubectl?version=latest” -o kubectl && chmod +x kubectl && cp kubectl /usr/bin/
2.2 安裝rke
針對主節(jié)點(diǎn)安裝rke
curl -LO “https://github.com/rancher/rke/releases/download/v1.3.10/rke_linux-amd64” && mv rke_linux-amd64 rke && chmod +x rke && ./rke --version && cp rke /usr/bin/
國內(nèi)備用 curl -fL “https://kinshy-generic.pkg.coding.net/south/study/rke?version=latest” -o rke && chmod +x rke && ./rke --version && cp rke /usr/bin/
2.3 配置機(jī)器運(yùn)行環(huán)境
a.禁用 SELinux
/usr/sbin/sestatus -v |grep “SELinux status”
#結(jié)果為 enabled 為啟用狀態(tài)
vim /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled
b.禁用 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 的一行
c.關(guān)閉防火墻
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
重啟查看修改是否生效
reboot
/usr/sbin/sestatus -v |grep “SELinux status”
free -h
d.CentOS7不能使用root用戶安裝
adduser rke -G docker
#設(shè)置 RKE 用戶密碼
passwd rke
#嘗試使用rke用戶操作docker,觀察是否有權(quán)限
su rke
docker ps
e.配置主節(jié)點(diǎn)到各個節(jié)點(diǎn)rke用戶的免密登錄(僅在主節(jié)點(diǎn)操作,執(zhí)行rke命令的機(jī)器)
#一路回車按到底
ssh-keygen
ssh-copy-id rke@節(jié)點(diǎn)IP
這個地方要給全部的機(jī)器配置ssh,包括自己
比如我有 172.12.17.167 172.12.17.166 兩臺機(jī)器
#在 172.12.17.167 上執(zhí)行
ssh-keygen
ssh-copy-id rke@172.12.17.167
ssh-copy-id rke@172.12.17.166
#在 172.12.17.166 上執(zhí)行
ssh-keygen
ssh-copy-id rke@172.12.17.166
ssh-copy-id rke@172.12.17.167
#如何有新的節(jié)點(diǎn)加入也需要在所以機(jī)器上配置ssh
#測試 ssh 并執(zhí)行 docker ps 看是否正常工作
ssh rke@節(jié)點(diǎn)IP
docker ps
2.4 集群部署配置
注意以下編輯rke.yaml和執(zhí)行的操作需以上述新建的rke用戶執(zhí)行
編輯rke.yaml(如僅有內(nèi)網(wǎng),則去掉所有node的internal_address,并將address改為內(nèi)網(wǎng)地址:如192.168.xxx.xx;如僅有外網(wǎng)(跨云主機(jī)),則去掉所有node的internal_address,則將自有機(jī)器外網(wǎng)ip分別加入安全組開放所有端口,并做好從主節(jié)點(diǎn)rke用戶到其它節(jié)點(diǎn)rke用戶的免密登錄,完成后記得關(guān)閉密碼登錄以免出現(xiàn)云服務(wù)器安全問題)
可選(通過rke config生成cluster.yaml,自定義程度更高)注意格式
nodes:
- address: 165.227.114.63
internal_address: 172.16.22.12
user: rke
role: [controlplane, worker, etcd] - address: 165.227.116.167
internal_address: 172.16.32.37
user: rke
role: [worker] - address: 165.227.127.226
internal_address: 172.16.42.73
user: rke
role: [worker]
services:
etcd:
snapshot: true
creation: 6h
retention: 24h
ingress:
provider: nginx
options:
use-forwarded-headers: “true”
執(zhí)行集群安裝 rke up --config rke.yaml
運(yùn)行完成后執(zhí)行mkdir ~/.kube && mv kube_config_rke.yaml ~/.kube/config
使用kubectl get node 查看節(jié)點(diǎn),完成集群安裝
3.部分報錯處理
1.如果報錯:The connection to the server localhost:8080 was refused - did you specify the right host or port?
就執(zhí)行命令:export KUBECONFIG=$(pwd)/kube_config_rke.yaml
$(pwd)為kube_config_rke.yaml的目錄
2.如果報錯:[某節(jié)點(diǎn)ip] not found
可能由于之前的集群配置導(dǎo)致,允許刪除的情況下
就執(zhí)行命令
刪除集群【注意操作不可逆】
【刪除不可逆】rke remove --config rke.yaml【刪除不可逆】
【再次執(zhí)行集群】執(zhí)行集群安裝 rke up --config rke.yaml
總結(jié)
以上是生活随笔為你收集整理的使用RKE安装K8S集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于jq工具安装shell脚本
- 下一篇: codeforces 1550B. Ma