ubantu安装k8s集群服务

进行主机优化配置

参考:

修改主机名称

hostnamectl set-hostname k8s-node03

关闭swap分区

bash 复制代码
swapoff -a     #临时关闭
sed -i '/\/swap/s/^/#' /etc/fstab    #永久关闭

增加主机解析

bash 复制代码
cat >> /etc/hosts << EOF
10.1.60.119 k8s-master01
10.1.60.120 k8s-master02
10.1.60.121 k8s-master03
10.1.60.122 k8s-node01
10.1.60.123 k8s-node02
10.1.60.130 k8s-node03
EOF

配置内核转发和网桥过滤

bash 复制代码
cat > /etc/modules-load.d/k8s.conf <<EOF

overlay

br_netfilter

EOF

加载配置

bash 复制代码
sudo modprobe overlay && sudo modprobe br_netfilter

查看配置

bash 复制代码
lsmod |grep -e overlay -e br_netfilter

将桥接的IPv4流量传递到iptables

bash 复制代码
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

加载配置

bash 复制代码
 sysctl --system

安装ipvs服务

bash 复制代码
apt install -y ipset ipvsadm

配置ipvs

bash 复制代码
cat > /etc/modules-load.d/ipvs.conf <<EOF

#!/bin/bash

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack_ipv4

EOF

授权并生效ipvs配置

bash 复制代码
chmod 755 /etc/modules-load.d/ipvs.conf && bash /etc/modules-load.d/ipvs.conf

查看模块是否生效

bash 复制代码
 lsmod | grep -e ip_vs -e nf_conntrack

安装docker或container服务

因为1.26版本kubelet已经不再内置cri-docker,所以使用docker服务需要额外安装cri-docker服务,若使用container服务则不用额外安装,这里选择一个使用即可

选用container

下载container安装包

bash 复制代码
​
wget https://github.com/containerd/containerd/releases/download/v1.7.19/cri-containerd-1.7.19-linux-amd64.tar.gz

解压

bash 复制代码
tar xf cri-containerd-1.7.19-linux-amd64.tar.gz -C /
which containerd

生成配置文件

bash 复制代码
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml

编辑配置文件

vim /etc/containerd/config.toml

bash 复制代码
67     sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"  #更改为阿里云镜像地址
139             SystemdCgroup = true    #开启cgroup
162       config_path = "etc/containerd/certs.d"  #配置镜像加速

编辑镜像加速配置文件

bash 复制代码
mkdir -p /etc/containerd/certs.d/docker.io

cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://sudzwtcw.mirror.aliyuncs.com"]
 capabilities = ["pull", "resolve"]
EOF

配置开机自启并启动containerd服务

bash 复制代码
systemctl enable --now containerd

选用docker

下载阿里云源密钥

bash 复制代码
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker-archive-keyring.gpg

添加docker官方仓库

bash 复制代码
echo "deb [arch=amd64 signed-by=/ect/apt/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

安装docker-ce

bash 复制代码
apt update && apt install -y docker-ce

配置开机自启并启动

bash 复制代码
systemctl enable --now docker
docker -v

安装cri-docker(kubelet不内置docker的cri需要额外安装

bash 复制代码
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.13/cri-dockerd_0.3.13.3-0.ubuntu-jammy_amd64.deb

选择自己系统对应的版本,我这里是ubantu 22.04所以用的jammy的包

部署cri-docker

bash 复制代码
dpkg -i cri-dockerd_0.3.12.3-0.ubuntu-jammy_amd64.deb

配置cri-docker服务依赖镜像地址

vi /usr/lib/systemd/system/cri-docker.service

bash 复制代码
注释以下配置项
#ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://
新增以下配置项
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

加载配置项服务,并配置cri-docker开机自启

bash 复制代码
systemctl daemon-reload

systemctl enable --now cri-docker

以上containerd和docker选用一个安装完成后,安装k8s服务

下载阿里云源密钥

bash 复制代码
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.26/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

添加kubernetes apt仓库

bash 复制代码
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.26/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

更新仓库并查看软件列表

bash 复制代码
apt update && apt-cache policy kubeadm

安装指定版本的服务

bash 复制代码
apt -y install kubelet=1.26.0-2.1 kubeadm=1.26.0-2.1 kubectl=1.26.0-2.1

编辑kubelet配置

vi /etc/sysconfig/kubelet

bash 复制代码
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

配置开机自启

bash 复制代码
systemctl enable kubelet

可以锁定版本,防止自动更新

bash 复制代码
apt-mark hold kubelet kubeadm kubectl

#解锁执行以下命令
apt-mark unhold kubelet kubeadm kubectl

其余的就是创建集群和加入集群的操作

相关推荐
duration~16 分钟前
K8S自定义CRD
容器·贪心算法·kubernetes
程序员 小柴1 小时前
docker的与使用
java·docker·eureka
ghostwritten2 小时前
Docker Registry Clean
运维·docker·容器
宋冠巡2 小时前
Windows安装Docker(Docker Desktop)
windows·docker·容器
小马爱打代码3 小时前
Kubernetes 中部署 Ceph,构建高可用分布式存储服务
分布式·ceph·kubernetes
阿噜噜小栈4 小时前
最新国内可用的Docker镜像加速器地址收集
运维·笔记·docker·容器
云上艺旅4 小时前
K8S学习之基础六十八:Rancher创建deployments资源
学习·云原生·容器·kubernetes·rancher
rider1894 小时前
【4】搭建k8s集群系列(二进制部署)之安装master节点服务(kube-apiserver)
云原生·容器·kubernetes
海鸥816 小时前
podman和与docker的比较 及podman使用
docker·容器·podman
GreenMountainEcho11 小时前
Kubernetes 入门篇之 Node 安装与部署
云原生·容器·kubernetes