安装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对话框中: