Ubantu使用kubeadm部署kubernetes1.25.10+cri-docker

基于Ubantu系统的k8s集群搭建

前言

        网上的高版本k8s搭建的文章还是比较少,所以自己排坑半天后也来发篇文章,希望可以帮助到大家。

一、Kubernetes是什么?

        Kubernetes 最开始是由 Google 的工程师设计开发的。Google 作为 Linux 容器技术的早期贡献者之一,曾公开演讲介绍  Google 如何将一切都运行于容器之中(这是 Google 的云服务背后的技术)。Google 一周内的容器部署超过 20 亿次,全部的工作都由内部平台Borg支撑。Borg 是 Kubernetes 的前身,几年来开发 Borg 的经验教训也成了影响 Kubernetes 中许多技术的主要因素。

二、环境准备

  1. 三台ubantu主机

  2. 要求可以上网,离线安装的话需要提前准备好镜像以及依赖包等资源

ip地址规划如下:

节点名 内部IP地址 内部网关地址
k8s-master-1 192.168.1.1/24 192.168.1.254
k8s-node-1 192.168.1.2/24 192.168.1.254
k8s-node-2 19.168.1.3/24 192.168.1.254

依赖添加:

由于我是在测试环境中搭建的,所以使用root用户进行操作,我会标注每个节点需要进行什么步骤。

三节点操作

  • 基本配置
#临时关闭swap
swapoff -a
#配置内核参数,开启路由转发功能
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
#生效内核配置
sysctl -p
  • 配置apt依赖,安装docker、cri-docker插件

这里有个大坑!!!就是当你的k8s集群版本高于cri-docker支持的版本的时候,在初始化k8s集群时会出现响应超时的情况,在确认service文件配置的参数没问题时,请确保cri-docker支

持你要部署的k8s集群!

#配置apt依赖环境
apt-get update
apt-get install -y ca-certificates curl gnupg lsb-release net-tools  
#添加gpg密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg

#设置docker源密钥
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list

#安装docker
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

#获取新版cri-docker包
wget https://ghproxy.com/https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd_0.3.2.3-0.ubuntu-jammy_amd64.deb
#安装cri-docker
dpkg -i cri-dockerd_0.2.5.3-0.ubuntu-jammy_amd64.deb


#添加cri-docker启动参数
sed -i -e 's#ExecStart=.*#ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8#g' /usr/lib/systemd/system/cri-docker.service

#重新加载服务的配置文件并且启动服务
systemctl daemon-reload
sysetmctl start cri-docker
systemctl enable cri-docker
  • 配置kubernetes源,国内使用阿里源加速拉取镜像
#更新apt源
apt-get update
apt-get install -y apt-transport-https curl

#配置阿里k8s源密钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF

#三节点安装kubeadm、kubectl、kubelet
apt-get update
apt-get install -y kubelet=1.25.10-00 kubeadm=1.25.10-00 kubectl=1.25.10-00

三、修改初始化文件,配置初始化

Master节点:

可以提前拉取镜像并且打包成docker镜像包,来加速集群的搭建速度。


[root@k8s-master-1~]# kubeadm config print init-defaults > kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.1.1 #修改
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/cri-dockerd.sock #修改
  imagePullPolicy: IfNotPresent
  name: k8s-master-1  #修改
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers #修改
kind: ClusterConfiguration
kubernetesVersion: 1.25.10  #修改
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16 #改
scheduler: {}


#master进行初始化,等待镜像拉取,如果提示cri报错,请检查是否是版本问题或者是cri-docker.service中的启动参数配置错误
[root@k8s-master-1~]# kubeadm init --config=kubeadm-config.yam

#进行基本配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

Node节点:

node节点在加入集群时需要加上–cri-socket /var/run/cri-dockerd.sock参数来指定启动方式!

kubeadm join 192.168.1.1:6443 --cri-socket /var/run/cri-dockerd.sock --token 7dn4wz.v7uhvkf55b2vvi2h \
         --discovery-token-ca-cert-hash sha256:3ebd007a152158a603af63aa6f8fd28247a015f4c183504037d003fb7fc9ecfb

四、安装Calio网络插件

Master节点:

k8s的网络插件可选flunnel、calio等,在安装后使用kubectl get po -A 可查看创建的pod,因为在拉取镜像所以会pending状态的时间比较长,需要耐心等待,等到pod全部running后即可看见node都转为Ready状态

#获取yaml文件
wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/tigera-operator.yaml
wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/custom-resources.yaml

#安装calio
kubectl create -f tigera-operator.yaml
kubectl create -f custom-resources.yaml

总结

花了一下午安装好的一个小型集群,希望可以给大家提供一点参考的思路!  交流q 1257455837

猜你喜欢

转载自blog.csdn.net/TttRark/article/details/131134612
今日推荐