欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > k8s 1.28 集群部署

k8s 1.28 集群部署

2024/10/23 23:32:43 来源:https://blog.csdn.net/admin_233/article/details/142965611  浏览:    关键词:k8s 1.28 集群部署

文章目录

  • 环境配置
    • 安装docker
    • 安装cri-dockerd(Docker与Kubernetes通信的中间程序):
  • 部署kubernetes

环境配置

  1. 关闭Selinux
#永久
sed -i 's/enforcing/disabled/' /etc/selinux/config 
#临时
setenforce 0 
  1. 关闭Swap
#临时
swapoff-a
#永久
sed -ri 's/.*swap.*/#&/ /etc/fstab
  1. 根据规划设置主机名
hostnamectl set-hostname <hostname>
  1. 确保网络桥接的数据包经过Iptables处理,启用相关的内核参数
cat /etc/sysctl.d/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
  1. 生效
sysctl --system

安装docker

  1. 配置阿里云源地址,安装并启动docker-ce
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -0 /etc/yum.repos.d/docker-ce.repoyum -y install docker-ce
systemct1 enable docker && systemct1 start docker
  1. 配置镜像下载加速器和设置Cgroup驱动
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"],"exec-opts":["native.cgroupdriver=systemd"]
}
EOFsystemctl restart docker
docker info

安装cri-dockerd(Docker与Kubernetes通信的中间程序):

#下载
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

指定依赖镜像地址为国内镜像地址

vi /usr/lib/systemd/system/cri-docker.service
Execstart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google containers/pause:3.9

重载systemd配置

systemctl daemon-reload

启动并设置开机自启 ci-docker

systemctl enable cri-docker &systemctl start cri-docker

部署kubernetes

  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
  1. 安装kubeadm,kubelet和kubect1,kubect1(可以只安装在master节点中)
yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubect1-1.28.0# 这里只是设置开机自启,后面由kubeadm初始化后并自启
systemctl enable kubelet
  1. 初始化Master节点
kubeadm init \
--apiserver-advertise-address=192.168.1.71 \ #声明监听的ip地址,与主机IP地址一致
--image-repository registry.aliyuncs.com/google_containers \ #默认为国外镜像,这里指定阿里云的镜像仓库
--kubernetes-version v1.28.0 \ #指定k8s部署的版本
--service-cidr=10.96.0.0/12 \ #指定Service网段
--pod-network-cidr=10.244.0.0/16 \ #指定pod网段
--cri-socket=unix:///var/run/cri-dockerd.sock #指定连接docker的中间程序的Socket

成功显示:
Your Kubernetes control-plane has initialized successfully!

初始化完成后,根据提示信息,拷贝kubect1工具认证文件到默认路径:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

使用kubectl工具查看节点状态:

kubectl get node
  1. 在node子节点执行下方命令,并指定连接docker的中间程序的Socket,加入到master节点中
kubeadm join 192.168.1.71:6443 --token 5dh8w8.o2d1vbrqk3x1w93h \
--discovery-token-ca-cert-hash sha256:45f1185c31b9c074f87be118950019a839c31acf0ec48a1581833a540058d144 --cri-socket=unix:///var/run/cri-dockerd.sock

使用kubectl工具查看节点状态:

kubectl get node

注:由于网络插件还没有部署,节点会处于“NotReady”状态。

  1. 安装网络组件(master节点执行)
    这里使用Calico作为Kubernetes的网络插件,负责集群中网络通信。
    创建Calico网络组件的资源(master节点执行):
kubectl create -f tigera-operator.yaml
kubectl create -f custom-resources.yaml

查看Calico相关Pod的运行状态(需要下载镜像,等待5分钟左右)

kubectl get pods -n calico-system

注:如果Pod处于“ContainerCreating”状态说明在下载镜像中,需耐心等待,所有的pod状态为running时,代表安装成功

  1. 安装Dashboard(master节点执行)
    Dashboard是官方提供的一个UI,可用于基本管理K8s资源。
kubectl apply -f kubernetes-dashboard.yaml

查看状态

kubectl get pods -n kubernetes-dashboard

注:如果Pod处于“ContainerCreating”状态说明在下载镜像中,需耐心等待,所有的pod状态为running时,代表安装成功

浏览器访问“https://节点IP地址:30001”,将看到Dashboard登录界面。
创建服务账号并授权管理员权限:

#创建用户
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard#用户授权
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin#获取用户Token
kubectl cre 0ate token dashboard-admin -n kubernetes-dashboard

使用输出的Token登录Dashboard,将进入到首页

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com