ubuntu24.04安装k8s1.33.1和containerd1.7.27和calico3.30

前置条件

  • 三台虚拟机 (至少2c2g40g)
  • 最小化安装ubuntu

ubuntu配置(三台虚拟机都修改)

  1. 设置主机名
    主机名字分别为 k8s-master k8s-node1 k8s-node2

例如: hostnamectl set-hostname k8s-master

  1. 设置ip地址(三台虚拟机都修改)
    主机ip分别为 192.168.236.160 / 161 / 162

sudo vim /etc/netplan/50-cloud-init.yaml

	dhcp4: no # 右true修改为no
      addresses: 
        - 192.168.236.100/24  # 每个人的网段都不一样,需要仔细查看本机ip并做修改,同routes
      routes:
        - to: default
          via: 192.168.236.2
      nameservers:
        addresses: [119.29.29.29,114.114.114.114,8.8.8.8]

应用

netplan apply

  1. 设置ip地址对应主机名
    编辑/etc/hosts文件追加

192.168.198.160 k8s-master

192.168.198.161 k8s-node1

192.168.198.162 k8s-node2

  1. 设置时区

timedatectl set-timezone Asia/Shanghai

  1. 关闭防火墙(由于ubuntu是最小化安装没有防火墙所有不需要关闭)

  2. 关闭selinux(由于ubuntu是最小化安装没有防火墙所有不需要关闭)

  3. 配置内核转发及网桥过滤
    配置加载文件(ubuntu版本)

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

加载br_netfilter 和 overlay

modprobe br_netfilter
modprobe overlay

查看模块是否加载完成

lsmod | grep br_netfilter
lsmod | grep overlay

  1. 关闭swap分区

永久关闭swap分区

sudo vim /etc/fstab

注释掉 swap 配置

#/swap.img

  1. 重启

sudo reboot

安装containerd (三台虚拟机都安装)

从github上复制containerd下载链接 https://github.com/containerd/containerd/releases/tag/v1.7.27
下载cri-containerd-1.7.27-linux-amd64.tar.gz
下载可能比较慢可以去使用github镜像加速去下载

wget https://github.com/containerd/containerd/releases/download/v1.7.5/cri-containerd-1.7.27-linux-amd64.tar.gz

下载完解压tar

tar xf cri-containerd-1.7.27-linux-amd64.tar.gz -C /

添加配置文件

mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml

修改配置文件

vi /etc/containerd/config.toml

修改containerd配置

sandbox_image = “registry.k8s.io/pause:3.8” 为 “registry.aliyuncs.com/google_containers/pause:3.10”

SystemCgroup = true

[plugins.“io.containerd.grpc.v1.cri”.registry]
config_path = “/etc/containerd/certs.d”

添加docker.io镜像

mkdir -p /etc/containerd/certs.d/docker.io
vim /etc/containerd/certs.d/docker.io/hosts.toml

server = "https://docker.io"  # 原始仓库地址

# 国内加速源(可配置多个,按顺序尝试)
[host."https://hub-mirror.c.163.com"]
  capabilities = ["pull", "resolve"]
[host."https://docker.m.daocloud.io"]
  capabilities = ["pull", "resolve"]
[host."https://dockerproxy.com"]
  capabilities = ["pull", "resolve"]

[host."https://docker.imgdb.de"]
  capabilities = ["pull", "resolve"]
[host."https://docker-0.unsee.tech"]
  capabilities = ["pull", "resolve"]
[host."https://docker.hlmirror.com"]
  capabilities = ["pull", "resolve"]

[host."https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"]
  capabilities = ["pull", "resolve"]
[host."https://mirror.ccs.tencentyun.com"]
  capabilities = ["pull", "resolve"]
[host."https://mirrors.huaweicloud.com/repository/docker-ce"]
  capabilities = ["pull", "resolve"]


[host."https://mirrors.ustc.edu.cn/docker-ce"]
  capabilities = ["pull", "resolve"]
[host."https://mirrors.163.com/docker-ce"]
  capabilities = ["pull", "resolve"]
[host."https://k-docker.asia"]
  capabilities = ["pull", "resolve"]

添加registry.k8s.io镜像

sudo vim /etc/containerd/certs.d/registry.k8s.io/hosts.toml

server = "https://registry.k8s.io"
[host."https://k8s.m.daocloud.io"]
  capabilities = ["pull", "resolve"]

开机自启并现在启动

systemctl enable --now containerd

安装成功验证版本

ctr -v

查看镜像

ctr img ls

安装k8s组件(三台虚拟机都安装)

  1. 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:
sudo apt-get update
# apt-transport-https 可能是一个虚拟包(dummy package);如果是的话,你可以跳过安装这个包
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
  1. 下载用于 Kubernetes 软件包仓库的公共签名密钥。所有仓库都使用相同的签名密钥,因此你可以忽略URL中的版本:
# 如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它,请阅读下面的注释。
# sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
  1. 添加 Kubernetes apt 仓库。 请注意,此仓库仅包含适用于 Kubernetes 1.33 的软件包; 对于其他 Kubernetes 次要版本,则需要更改 URL 中的 Kubernetes 次要版本以匹配你所需的次要版本 (你还应该检查正在阅读的安装文档是否为你计划安装的 Kubernetes 版本的文档)。
# 此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
  1. 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本当前版本为1.33.1所有没有修改版本:
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
  1. 指定版本安装k8s
yum install -y kubeadm-1.33.1 kubectl-1.33.1 kubelet-1.33.1
  1. 配置kubelet

vim /etc/default/kubelet

添加以下内容

KUBELET_EXTRA_ARGS= “–cgroup-driver=systemd”

  1. 设置开机自启动

systemctl enable kubelet

主节点安装配置

  1. 查看k8s配置需要的组件

kubeadm config images list

  1. 拉取镜像(通过阿里云镜像拉取)

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

  1. k8s初始化(注:在主节点k8s-master初始化)

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.198.160 --image-repository registry.aliyuncs.com/google_containers

– kubernetes-version 使用现在安装的版本
– pod-network-cidr 固定为10.244.0.0/16
– apiserver-advertise-address 主节点地址192.168.198.160(之前敲错了,敲了个错误的地址192.168.198.0 害我半天没初始化成功,痛太痛了)
–image-repository registry.aliyuncs.com/google_containers 使用国内镜像不然国外镜像拉不下来

  1. k8s初始化失败后重置后重试以上步骤

kubeadm reset -f

  1. k8s初始化成功
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.198.160:6443 --token qbywv7.qork7e5iozqhkpbr \
--discovery-token-ca-cert-hash sha256:0063fd65cf4ae4bbde7353594ba51621d50752b2bae889007b0de30a9cde2276 
  1. 主机输入命令

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

  1. 查看集群节点

kubectl get nodes

  1. 在节点机上运行命令即可加入集群

kubeadm join 192.168.198.160:6443 --token qbywv7.qork7e5iozqhkpbr
–discovery-token-ca-cert-hash sha256:0063fd65cf4ae4bbde7353594ba51621d50752b2bae889007b0de30a9cde2276

  1. 查看节点运行组件

kubectl get pods -n kube-system

安装calico网络插件

官网下载https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart

  1. 下载 tigera-operator(下载慢可以使用github加速镜像下载)

wget https://raw.githubusercontent.com/projectcalico/calico/v3.30.1/manifests/tigera-operator.yaml

  1. 然后安装

kubectl create -f tigera-operator.yaml

  1. 查看命名空间

kubectl get ns

  1. 查看tigara-operator内pod是否运行

kubectl get pods -n tigera-operator

  1. 下载custom-resources.yaml

wget https://raw.githubusercontent.com/projectcalico/calico/v3.30.1/manifests/custom-resources.yaml

  1. 修改custom-resources.yaml

vi custom-resources.yaml
将192.168.0.0 改为 10.244.0.0

  1. 加载

kubectl create -f custom-resources.yaml

  1. 测试是否通信
    coredns是否running

kubectl get pods -n kube-system -o wide

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值