最新kubernetes搭建(k8s)(已成功搭建)
硬件要求
内存:2GB或更多
CPU: 2核CPU或更多
硬盘: 30GB或更多
本次环境说明:
操作系统:CentOS 7
master: 192.168.100.10
node01: 192.168.100.20
node02: 192.168.100.30
二、环境准备
1.关闭防火墙和selinux
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld && iptables -F
关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0
2. 关闭swap分区
临时关闭
swapoff -a
永久关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
3.修改hosts文件
设置主机名(不设置也可以,但是要保证主机名不相同)
master上
hostnamectl set-hostname master
bashhostnamectl set-hostname node1
bashhostnamectl set-hostname node2
bash
修改本地hosts文件
vi /etc/hosts 添加如下内容
192.168.100.10 master
192.168.100.20 node1
192.168.100.30 node2
3台服务器,确保网络桥接的数据包经过Iptables处理,启用相关的内核参数:
# 访问网络插件丢包
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效配置
sysctl --system
三、安装docker
1.配置yum源(这里使用阿里云的源)
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
2. 安装docker
yum install docker-ce docker-ce-cli -y
3.编辑docker配置文件
编辑/etc/docker/daemon.json
配置 Docker 镜像加速器和设置 Cgroup 驱动:# 配置加速器
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://8er86g8v.mirror.aliyuncs.com","https://docker.1panel.live/"],"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
3.启动docker服务
systemctl daemon-reload && systemctl enable docker && systemctl start docker
4.安装指定版本的cri-docker
# 下载
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm# 安装
rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm
指定 cri-docker 依赖镜像地址为国内镜像地址:
# 修改配置
vim /usr/lib/systemd/system/cri-docker.service
将 ExecStart 配置改成下述这样:
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
重新加载 cri-docker 配置:
systemctl daemon-reload
systemctl enable cri-docker && systemctl start cri-docker
四、安装kubeadm,kubelet和kubectl
1.配置yum源(这里使用阿里云的源)
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
2.安装指定版本的kubeadm,kubelet,kubectl
yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0# 设置开机自启
systemctl enable kubelet
由于不知道默认安装的最新版,国内的阿里云镜像站同步会有延迟,导致无法拉取镜像。如果你可以拉去到最新的镜像那请随意。
出现以下即为成功
按照输出信息
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
接下来去node1,node2执行(指定socket)(--cri-socket=unix:///var/run/cri-dockerd.sock)
kubeadm join 192.168.100.10:6443 --token 6rydpq.tg8bb47i0e0y25z0 --discovery-token-ca-cert-hash sha256:415e1eb8ada3da0581a1ffe7e90e3e29265526e42ea9ba7f682087bff3ae07a0 --cri-socket=unix:///var/run/cri-dockerd.sock
如果遇到报错
参考以下解决
-
启用 kubelet 服务: 运行以下命令以启用并启动
kubelet
服务:systemctl enable kubelet.service systemctl start kubelet.service
-
设置 IP 转发: 你需要确保
/proc/sys/net/ipv4/ip_forward
的值设置为 1。这可以通过以下命令完成:echo 1 > /proc/sys/net/ipv4/ip_forward
为了确保在系统重启后仍然保持这个设置,你可以在
/etc/sysctl.conf
文件中添加或修改以下行:net.ipv4.ip_forward = 1
然后,应用更改:
sysctl -p
-
再次执行 join 命令: 在执行以上步骤后,重新尝试运行
kubeadm join
命令。
下载calico插件入股
wget https://xuzhibin-bucket.oss-cn-beijing.aliyuncs.com/k8s/calico.yaml
下载完毕后,修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR
配置,修改成上面 pod-network-cidr 的值:10.244.0.0/16
,如下所示:
修改完毕后,Master 启动配置文件:
kubectl apply -f calico.yaml
等待3分钟后,查看 Pod 运行状态,发现 pods 全部状态为 Running 成功,这样就说明 k8s 集群部署完毕了!:
kubectl get pods -A -o wide
kubectl get nodes