k8sV1.28.2搭建步骤详解!!(kubeadm)

准备三台主机,一台做master,两台做node

以下是所有节点均需操作!!!!

1、系统基础环境配置

1.关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

2.关闭 selinux 服务

setenforce 0 
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久关闭

3.关闭系统交换分区

swapoff -a #临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久关闭

4.设置主机名称

hostnamectl set-hostname k8s-master1
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

5.同步时间服务

yum -y install ntpdate
ntpdate ntp.aliyun.com

6.编辑 hosts

yum -y install vim
vim /etc/hosts
cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.146.120 k8s-master1
    192.168.146.121 k8s-node1
    192.168.146.122 k8s-node2

7.配置 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_ipv4
EOF

授权并生效 ipvs 配置
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules

yum install -y ipset ipvsadm

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay && sudo modprobe br_netfilter

将桥接的 IPv4 流量传递到 iptables

8.将桥接的 IPv4 流量传递到 iptables

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

生效配置
sysctl --system 

2、安装 docker 服务

1.配置 docker yum 源

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

2.安装 docker 服务

sudo yum makecache fast
sudo yum -y install docker-ce

3.启用 docker 并配置开机启动

systemctl start docker && systemctl enable docker

4.配置 docker 镜像加速

cat > /etc/docker/daemon.json << EOF
{
        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn",
                        "https://docker.m.daocloud.io",
			            "https://docker.1panel.live",
			            "https://hub.rat.dev",
                        "http://hub-mirrors.c.163.com"],
        "max-concurrent-downloads": 10,
        "log-driver": "json-file",
        "log-level": "warn",
        "data-root": "/var/lib/docker"
}

5.配置 Cgroup 驱动程序

加到 /etc/docker/daemon.json
"exec-opts": ["native.cgroupdriver=systemd"]

6.重启Docker服务

systemctl restart docker && systemctl enable docker

7.下载 cri-dockerd rpm 包

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.4/cri-dockerd-0.3.4.amd64.tgz

8.安装 cri-dockerd

##### 所有节点 #####
##解压
tar zxvf cri-dockerd-0.3.4.amd64.tgz
##拷贝二进制命令文件
cp cri-dockerd/* /usr/bin/

##配置systemctl管理
# vim /usr/lib/systemd/system/cri-docker.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target



# vim /usr/lib/systemd/system/cri-docker.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service

[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

# systemctl daemon-reload
# systemctl enable --now cri-docker
# systemctl status cri-docker

3、安装 kubelet、kubeadm、kubectl

1.配置 yum 源

# vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl

2.下载

yum -y install kubeadm-1.28.2-0 kubelet-1.28.2-0 kubectl-1.28.2-0  --disableexcludes=kubernetes

[root@k8s-master ~]# systemctl enable --now kubelet

##初始化之前kubelet无法启动,可以查看它的状态,下面这种情况代表正在等待指令
[root@k8s-master ~]# systemctl is-active kubelet
activating

4、配置所有主机互相免密登录

k8s-master节点操作
# ssh-keygen
# ssh-copy-id k8s-node1
# ssh-copy-id k8s-node2

k8s-node1节点操作
# ssh-keygen
# ssh-copy-id k8s-master
# ssh-copy-id k8s-node2

k8s-node2节点操作
# ssh-keygen
# ssh-copy-id k8s-master
# ssh-copy-id k8s-node1

下面是 k8s-master 端上的操作!!!

1.初始化k8s集群


[root@k8s-master1 ~]#  kubeadm init --apiserver-advertise-address=192.168.146.120 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.28.2 --pod-network-cidr=10.244.0.0/16   --cri-socket unix:///var/run/cri-dockerd.sock

出错的话就重置kubeadm环境再继续初始化
[root@k8s-master1 ~]# kubeadm reset --cri-socket unix:///var/run/cri-dockerd.sock

[root@k8s-master1 ~]# mkdir -p $HOME/.kube
[root@k8s-master1 ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master1 ~]# chown $(id -u):$(id -g) $HOME/.kube/config
[root@k8s-master1 ~]# export KUBECONFIG=/etc/kubernetes/admin.conf

#执行完后查看节点状态
[root@k8s-master1 ~]# kubectl get node

以下是 node 节点的操作!!!

1.将工作节点加入集群

在 master 节点上执行以下命令查看加入集群的 token
[root@k8s-master ~]# kubeadm token create --print-join-command

# token 看自己 master 上的复制后在节点上执行命令即可
[root@k8s-node1 ~]# kubeadm join 192.168.146.120:6443 --token h5dsoo.ue43aaoxw9kvcwip --discovery-token-ca-cert-hash sha256:4be4adf28e6e229fbe0754cc957dc552b6dc13d3fecd7fdfb1843ec11821aa02 --cri-socket unix:///var/run/cri-dockerd.sock
[root@k8s-node2 ~]# kubeadm join 192.168.146.120:6443 --token h5dsoo.ue43aaoxw9kvcwip --discovery-token-ca-cert-hash sha256:4be4adf28e6e229fbe0754cc957dc552b6dc13d3fecd7fdfb1843ec11821aa02 --cri-socket unix:///var/run/cri-dockerd.sock

5、安装网络插件

[root@k8s-master1 ~]# wget https://github.com/flannel-io/flannel/blob/master/Documentation/kube-flannel.yml
[root@k8s-master1 ~]# kubectl create -f kube-flannel.yaml

在 master 端查看 node 信息

  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值