使用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臺(tái)以上,每臺(tái)機(jī)器 4 GB 以上的內(nèi)存,內(nèi)存不足時(shí)應(yīng)用會(huì)受限制。用作控制平面節(jié)點(diǎn)的計(jì)算機(jī)上至少有2個(gè) CPU)
第二種需先安裝VirtualBox和Vagrant[需要注意二者的版本兼容]
使用vagrant其配置文件Vagrantfile可以參考如下(3節(jié)點(diǎn)集群):
配置完成后
2.運(yùn)行vagrant up指令生成3臺(tái)虛擬機(jī)
1.2 docker環(huán)境準(zhǔn)備
1.由于docker對(duì)內(nèi)核有一定要求 我們可以先升級(jí)內(nèi)核
具體指令參考如下:
查看內(nèi)核版本 —這里的內(nèi)核版本(3.10)和系統(tǒng)架構(gòu)(64位)
uname -smr
更新軟件包倉(cāng)庫(kù)
yum update
啟用Elrepo庫(kù)
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安裝 Elrepo 軟件庫(kù)
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表示一個(gè)穩(wěn)定的LTS(長(zhǎng)期支持)版本,而kernel-ml表示一個(gè)提供短期支持但提供更頻繁更新的
設(shè)置新的默認(rèn)啟動(dòng)項(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功能,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的
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
啟動(dòng)
設(shè)置為開機(jī)啟動(dòng)
systemctl enable docker
啟動(dòng)
systemctl start docker
查看啟動(dòng)狀態(tài)
systemctl status docker
查看版本
docker version
2.正式安裝
2.1 安裝kubectl
注意Linux命令引號(hào)的格式
針對(duì)集群的三臺(tái)機(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/
國(guó)內(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
針對(duì)主節(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/
國(guó)內(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)到各個(gè)節(jié)點(diǎn)rke用戶的免密登錄(僅在主節(jié)點(diǎn)操作,執(zhí)行rke命令的機(jī)器)
#一路回車按到底
ssh-keygen
ssh-copy-id rke@節(jié)點(diǎn)IP
這個(gè)地方要給全部的機(jī)器配置ssh,包括自己
比如我有 172.12.17.167 172.12.17.166 兩臺(tái)機(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
#測(cè)試 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ù)器安全問(wèn)題)
可選(通過(guò)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.部分報(bào)錯(cuò)處理
1.如果報(bào)錯(cuò):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.如果報(bào)錯(cuò):[某節(jié)點(diǎn)ip] not found
可能由于之前的集群配置導(dǎo)致,允許刪除的情況下
就執(zhí)行命令
刪除集群【注意操作不可逆】
【刪除不可逆】rke remove --config rke.yaml【刪除不可逆】
【再次執(zhí)行集群】執(zhí)行集群安裝 rke up --config rke.yaml
總結(jié)
以上是生活随笔為你收集整理的使用RKE安装K8S集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于jq工具安装shell脚本
- 下一篇: codeforces 1550B. Ma