1. 程式人生 > >利用tar包一鍵安裝Kubernetes(詳解)

利用tar包一鍵安裝Kubernetes(詳解)

1、準備工作

環境centos7兩臺以上的主機
一個做master,另外的做node1、node2 …
修改主機名稱
hostnamectl set-hostname master
hostnamectl set-hostname node1 …
(我用的是兩臺centos7)

1、關閉防火牆

systemctl stop firewalld && systemctl disable firewalld
setenforce 0

2、安裝配置master主機

1. 上傳kubernetes tar包kubernetes tar包免費給大家,點選下載


使用 lrzsz 命令從windows上傳到linux主機中 (也可以使用其他方法上傳 tar 包)

2. mv 1kubernetes1.9.2.tar.tar.gz /root/k8s1
mkdir /root/k8s1
mv 1kubernetes1.9.2.tar.tar.gz /root/k8s1

3. 關閉系統交換分割槽
swapoff -a
-a 將/etc/fstab檔案中所有設定為swap的裝置關閉
-h 幫助資訊
-V 版本資訊

4. 開啟 docker
systemctl start docker
(安裝配置見 之前釋出的 docker安裝與配置
注:這裡不要使用yum -y install docker 直接下載的docker,不然後面可能會出現問題!

5. 修改selinux配置檔案
sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config

6. 下載 epel-release
yum install epel-release

7. 新增ip 到 /etc/hosts
在 /etc/hosts 檔案中新增ip
vi /etc/hosts
ip master主機名字
ip node主機名字
如:
192.168.126.131 master
192.168.126.129 node1

8. 解壓1kubernetes1.9.2.tar.tar.gz
cd /root/k8s1

tar -xvf 1kubernetes1.9.2.tar.tar.gz

cd shell

sh init.sh

[[email protected] shell]# sh init.sh 
* Applying /usr/lib/sysctl.d/00-system.conf ...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.d/k8s.conf ...
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
* Applying /etc/sysctl.conf ...
init.sh:行7: forward: 未找到命令

需要一段時間 init.sh:行7: forward: 未找到命令 這個不用管

sh master.sh

[[email protected] shell]# sh master.sh 
[init] Using Kubernetes version: v1.9.2
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
	[WARNING SystemVerification]: docker version is greater than the most recently validated version. Docker version: 17.05.0-ce. Max validated version: 17.03
	[WARNING FileExisting-socat]: socat not found in system path
	[WARNING FileExisting-crictl]: crictl not found in system path
[preflight] Some fatal errors occurred:
	[ERROR Port-6443]: Port 6443 is in use
	[ERROR Port-10250]: Port 10250 is in use
	[ERROR Port-10251]: Port 10251 is in use
	[ERROR Port-10252]: Port 10252 is in use

這裡面會產生下面的加入叢集命令,類似於 Swarm

9. 將 sh master.sh 產生的加入叢集命令在node節點上使用
kubeadm join --token af6813.20df34842ec71dc9 192.168.186.211:6443 --discovery-token-ca-cert-hash sha256:47d8ff8cddcdf913eef782dc974281cd19f15bb5b5c5c2bcb0d4190b07305543
(加入叢集的命令,注意複製自己的)

10. 檢視pod
kubectl get pod -n kube-system

11. 獲取node資訊
kubectl get node

3、安裝配置node節點

1. 上傳kubernetes tar包
使用lrzsz命令上傳

2. mv 1kubernetes1.9.2.tar.tar.gz /root/k8s1

3.關閉系統交換分割槽
swapoff -a

4. 開啟 docker
systemctl start docker
(安裝配置見 之前釋出的 docker安裝與配置

5. 修改selinux配置檔案
sed -i.bak ‘s/SELINUX=enforcing/SELINUX=permissive/’ /etc/selinux/config

7. 新增ip 到 /etc/hosts
同 master 一致

8. 解壓1kubernetes1.9.2.tar.tar.gz
cd /root/k8s1
tar -xvf 1kubernetes1.9.2.tar.tar.gz
cd shell
sh init.sh
這裡不需要執行 master.sh
9. 將節點新增到集合中
kubeadm join --token af6813.20df34842ec71dc9 192.168.186.211:6443 --discovery-token-ca-cert-hash sha256:47d8ff8cddcdf913eef782dc974281cd19f15bb5b5c5c2bcb0d4190b07305543
(這是master 第9步產生的加入集合命令)

4、進入瀏覽器訪問web介面

https://主機ip+埠32000
如:https://192.168.126.131:32000
這裡是https,注意!

推薦使用火狐瀏覽器會出現以下結果:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述
注:

  • 如果使用虛擬機器安裝,將 master 虛擬機器的記憶體分配2G以上,node不用,不然可能會還卡,而且還可能會無法建立連線
  • 使用瀏覽器登入web介面它會提示你“您的連線並不安全”這裡推薦用火狐瀏覽器,出現提示時選“高階”,然後選“新增例外”,接著選“確認安全例外”,這是會出來個 Kubernetes 儀表板 選擇跳過,就會進入k8s web介面