安裝K8S集群
離線安裝所需軟件分享在:鏈接:https://pan.baidu.com/s/1e1RmJ-0GiT2J4GJkIEXcqw 提取碼:yymq 1. 準備虛擬機我們需要準備三臺linux
離線安裝所需軟件分享在:鏈接:https://pan.baidu.com/s/1e1RmJ-0GiT2J4GJkIEXcqw
提取碼:yymq
1. 準備虛擬機
我們需要準備三臺linux服務器,其中一臺作為master,兩臺作為node。
在本文中,我們使用VMware Workstation 16 Player來準備Linux環境,使用CentOS-7-x86_64-Minimal-2009.iso作為操作系統安裝盤。
首先創建一臺模板虛擬機,2核2G10G硬盤,按1.2~1.4執行后,形成模板,再復制為三臺虛擬機。
2. 設置操作系統參數
在線安裝操作系統內核:
#下載內核源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 安裝最新版本內核
yum --enablerepo=elrepo-kernel install -y kernel-lt
離線安裝操作系統內核:
rpm -ivh ~/0-kernel/kernel-lt-5.4.159-1.el7.elrepo.x86_64.rpm
使用最新操作系統內核:
# 查看可用內核
cat /boot/grub2/grub.cfg |grep menuentry
# 設置開機從新內核啟動
grub2-set-default "CentOS Linux (5.4.159-1.el7.elrepo.x86_64) 7 (Core)"
# 查看內核啟動項
grub2-editenv list
# 重啟系統使內核生效
reboot
# 查看內核版本是否生效 uname -r
關閉SWAP
swapoff -a
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab
關閉防火墻
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0
修改iptables相關參
cat <<EOF > /etc/sysctl.d/k8s.conf
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 使配置生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
修改iptables相關參
cat <<EOF > /etc/sysctl.d/k8s.conf
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 使配置生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
加載ipvs模塊
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
#執行腳本
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack
安裝docker
3 安裝docker
在線安裝docker
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli http://containerd.io
離線安裝docker
cd /root/1-docker-ce
chomod +x install_docker-ce.sh
./install_docker-ce.sh
設置開機啟動
systemctl enable docker
systemctl start docker
配置docker的cgroupdriver為systemd模式
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
4. 安裝k8s
在線安裝k8s
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm
離線安裝k8s
cd /root/2-kubeadm
chomod +x install_kubeadm.sh
./install_kubeadm.sh
設置開機啟動
systemctl enable docker
systemctl start docker
5. 分別設置三臺服務器
復制為三臺虛擬機
將模板虛擬機復制為3份,在vmware workstation player中打開,分別命名為master-01,node-01,node-02,依次查看ip地址,并在xshell中登記備用。
設置hostname與hosts
準備好三臺虛擬機后,應分別設置hostname:
| 主機名 | IP地址 |
| master-01 | 192.168.83.138 |
| node-01 | 192.168.83.139 |
| node-02 | 192.168.83.140 |
設置hostname的命令為hostnamectl set-hostname xxx;查看操作系統hostname的命令為:hostname
master-01專門設置:
master-01將來需要通過hostname找到node-01與node-02,所以需要在master-01的/etc/hosts文件中,追加node-01與node-02的ip-主機名映射關系:
echo 192.168.83.138 mstaer-01 >> /etc/hosts
echo 192.168.83.139 node-01 >> /etc/hosts
echo 192.168.83.140 node-02 >> /etc/hosts
在master-01上導入鏡像
docker load -i coredns.tar
docker load -i etcd.tar
docker load -i flannel-cni-plugin.tar
docker load -i flannel.tar
docker load -i kube-apiserver.tar
docker load -i kube-controller-manager.tar
docker load -i kube-proxy.tar
docker load -i kube-scheduler.tar
docker load -i pause.tar
在node-01,node-02上導入鏡像
docker load -i flannel-cni-plugin.tar
docker load -i flannel.tar
docker load -i pause.tar
6. 初始化k8s集群
在master-01上執行:kubeadm init --apiserver-advertise-address=192.168.83.138 --pod-network-cidr=10.244.0.0/16 --image-repository http://registry.aliyuncs.com/google_containers
根據提示執行如下命令:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在node-01于node-02上分別執行:
kubeadm join 192.168.83.138:6443 --token bdb8hj.9or4rqzdrr97rfyx
--discovery-token-ca-cert-hash sha256:xxx
在master-01上執行: kubectl get nodes,確認node已加入集群:

在master-01上執行:kubectl apply -f /root/4-flannel/kube-flannel.yaml,開通k8s網絡

7. 安裝GUI工具
在windows上安裝lens:5-lens/Lens Setup 5.2.7-latest.20211110.1.exe
運行Len,打開File-> Add Cluster對話框。
在master-01上執行:cat .kube/config,將內容復制到的File-> Add Cluster對話框中:
上一篇:高可用K3S 集群搭建
下一篇:K8S 集群的安裝









