Ubuntu 一次成功安装 k8s集群

news/2025/2/7 16:34:07/文章来源:https://www.cnblogs.com/lipu123/p/18702536

Ubuntu系统设置静态固定IP保姆级教程

修改主机名

sudo hostnamectl set-hostname k8s-master

关闭防火墙

systemctl status ufw.service
systemctl stop ufw.service
systemctl disable ufw.service

image

apt-get update

安装docker

apt install -y docker.io

image

image

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://u4boahgk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

image

关闭swap分区

临时关闭

swapoff -a

永久禁用:

vim /etc/fstab               打开文件按照下图注释一行。

image
使用 free -m 命令来查看确认交换分区已经被禁用
image

修改改为国内镜像源地址

备份配置文件sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak修改镜像源为华为云镜像sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.listsudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list

image
主机名与IP地址解析配置

cat >> /etc/hosts << EOF
192.168.234.114 k8s-master
192.168.234.115 k8s-node1
192.168.234.116 k8s-node2
EOF

配置内核转发及网桥过滤:

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

image
加载配置:

modprobe overlaymodprobe br_netfilter

image
查看是否加载:

lsmod |grep overlaylsmod |grep br_netfilter

image

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

image
让配置生效:

sysctl -p /etc/sysctl.d/k8s.conf

image
查看是否加载生效

lsmod |grep br_netfilter

image

安装ipset和ipvsadm

apt install ipset ipvsadm

image
然后执行配置 ipvsadm 模块,用于开机自启动的,可以使用vi /etc/modules-load.d/ipvs.conf查看是否配置成功

cat << EOF | tee /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF

image
因为本次也需要启动,所以需要在配置一个脚本用于本次启动的
配置脚本文件

cat << EOF | tee ipvs.sh
#!/bin/sh
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

执行刚刚创建的脚本

sh ipvs.sh

通过下面的命令查看是否配置成功

lsmod | grep ip_vs

image

容器运行时containetd

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

image
解压并查看

tar xf cri-containerd-1.7.15-linux-amd64.tar.gz -C /which containerd

image
containerd配置文件生成并修改
创建文件:

mkdir /etc/containerd

生成配置文件:

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

image

vim /etc/containerd/config.toml

修改第65行sandbox_image的值改为registry.aliyuncs.com/google_containers/pause:3.9,改为阿里的镜像地址和版本号。(镜像地址也可以不修改,只需要修改版本号也行,需要和后面–>8.1、集群初始化介绍的kubeadm-config.yaml文件的一致就行)

image

需要137行的false改为true
image
保存好退出

配置镜像加速

修改Config.toml文件vim /etc/containerd/config.toml。如下:

config_path = "/etc/containerd/certs.d"

image

加速器地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=bc13766a0ea243b0a4779ee8dfcca203ruwy
image

创建上图相应的文件目录mkdir -p /etc/containerd/certs.d/docker.io配置加速cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://u4boahgk.mirror.aliyuncs.com"]capabilities = ["pull", "resolve"]
EOF

image
启动并设置开机自启

systemctl enable --now containerd

查看版本:

containerd --version

image

2、集群部署(所有服务器都需要操作)

1、下载用于kubernetes软件包仓库的公告签名密钥
k8s社区源(和下面的阿里云源二选一即可)
创建目录:

sudo mkdir -p /etc/apt/keyrings/

下载密钥

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

阿里云源
创建目录:

sudo mkdir -p /etc/apt/keyrings/

下载密钥

sudo apt install curl
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

image
k8s社区(和下面的阿里云源二选一即可)
添加kubernetes apt仓库

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

image
阿里云
添加kubernetes apt仓库

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

更新仓库

apt-get update

image
查看软件列表:

apt-cache policy kubeadm

image
安装指定版本:

sudo apt-get install -y kubelet=1.30.0-1.1 kubeadm=1.30.0-1.1 kubectl=1.30.0-1.1

image
修改kubelet配置

vim /etc/sysconfig/kubeletKUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

image
设置为开机自启

systemctl enable kubelet

image
锁定版本,防止后期自动更新。

sudo apt-mark hold kubelet kubeadm kubectl

image
解锁版本,可以执行更新

sudo apt-mark unhold kubelet kubeadm kubectl

3、集群初始化:(k8s-master节点操作)

查看版本

kubeadm version

image

  1. 创建kubeadm-config配置文件
    把配置文件打印到本地,用于编辑
kubeadm config print init-defaults > kubeadm-config.yaml
ls

image

修改文件
修改拉下来的配置文件

vim kubeadm-config.yaml

修改advertiseAddress的ip为mater节点的ip
修改name为mater节点的主机名
修改imageRepository仓库地址为阿里云的镜像仓库registry.aliyuncs.com/google_containers。因为前面/etc/containerd/config.toml文件修改了,如果前面的文件镜像仓库地址没修改,这个地方也可以不修改
修改kubernetesVersion版本号,前面下载的是什么版本就写什么版本
dnsDomain表示DNS域名,可以不修改,但一个局域网内只能有一个相同的,如果有两个k8s集群用的一样的DNS名字就会冲突,一般推荐修改为公司的域名
在networking中的 serviceSubnet 后面添加

podSubnet: 10.244.0.0/16

在最后面在添加下面的配置

---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd

image
image
image
重启服务
修改完,分别重启containerd 和 kubelet

systemctl restart containerd
systemctl restart kubelet

image
查看镜像

kubeadm config images list --config kubeadm-config.yaml

image
下载镜像

kubeadm config images pull --config kubeadm-config.yaml

image
如果出现报错镜像拉取不下来如下图错误
image
解决办法(我们在阿里云仓库进行拉取镜像)

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

image
查看镜像

crictl images

image
初始化集群

kubeadm init --config kubeadm-config.yaml

出现下面的,就表示初始化成功了
image

初始完成后按照反馈的命令执行mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

image
查看节点

kubectl get nodes

image
添加从节点(node1,和node2)
复制刚刚自己初始化的地址,到从节点执行,也就是另外两个worker02节点
(!!!这个是我的,需要复制自己的)
在k8s-node1和k8s-node2上执行

kubeadm join 192.168.234.114:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:6e31583e23ecb1603cc53e3dfa60b26f9da6b260e577180772a2bb3d36f97735

image
主节点执行

kubectl get nodes

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/880104.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高标准农田智慧管理系统

随着科技的飞速发展,智慧农业已成为推动农业现代化的重要力量。高标准农田智慧管理系统作为智慧农业的核心组成部分,正逐步改变着传统农业的生产方式。本文将深入探讨高标准农田智慧管理系统的建设内容,以期为我国农业的可持续发展提供新的思路和方向。一、高标准农田智慧管…

老年人评估系统web端

项目结构项目实现 用到了springboot mybatis框架 vue ajax axios element 成品效果自动刷新的信息查询点击注册跳转 跳转之后的注册页面点击返回可回到主页面点击删除按钮跳转的页面点击更正信息弹出的form表单 项目功能基本实现

【土地交易大揭秘】哪些用地必须走“招拍挂”之路?

今天咱们来聊聊一个在土地市场里热度颇高的话题——哪些用地必须通过招标、拍卖或者挂牌方式出让?这可是关乎城市建设和房地产开发的大事,对投资者和普通市民来说,了解这一点至关重要。下面,我们就来深入浅出地解读一番。招标、拍卖、挂牌出让简述首先,普及一下基本概念。…

python脚本与命令行交互sys.argv

前言在 Python 编程的世界里,sys.argv 是一个强大且实用的工具,它为我们开启了与命令行交互的大门,让程序能够接收外部传入的参数,从而实现更加灵活和多样化的功能。今天,就让我们深入探索 sys.argv 的奥秘。 “argv” 即 “argument value” 是一个列表对象,其中存储的是…

奶奶都能看懂的 CSS 选择器基础语法常用属性优先级

标题都是奶奶都能看懂了,那么我们肯定从最基础的开始讲。之所以这么自信是因为能踩的坑全帮你们踩过了…… 开始之前,先来首诗感受一下,具体啥意思你看完本文就懂了。 点类井号逗为或,类多号单连为且。 id 优先类在后,类型选择在末尾。 代码优先难解决,拿出鼠标数一数。 …

本地部署大模型体验小记

本地部署大模型的工具工具 优缺点LM Studio 图形界面友好,支持API访问,参数配置灵活Ollama GPU优化不足,CPU占用率高Chatbox 易出现输入卡顿,交互体验待优化Ollama 和 Chatbox 需要配合使用。 综合看更推荐使用 LM Studio 。 自定义模型 LM Studio 和 Ollama 除了使用默认的…

oi-math 重修

OI 数学重修 注: 很多东西没来得及写例题和代码,以后遇到会补上 想了一下虽然还有很多没写完,但是这两天要开数学了,决定后面的分成一个一个博客写然后在这挂链接,所以发出来了。 主题是看着 oi-wiki 写的,但细节上尤其是证明部分不太一样,毕竟也不是什么教学性质的,权…

方差、标准差、变异系数举例

一、标准差,也称均方差,是方差的算术平方根,标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。太绕了,上例子:1、先找出平均数。平均数是数据的平均值,把数据加起来然后除以数据个数就可以得到。2、再找出方差。方差是数据偏离平均数的程度。得…

中电金信:大咖漫话|如何营销AI赋能的远程银行

看过“从远程银行看AIGC”连载,今天将与各位漫话AI的营销“哲学”。祝各位事业蟠蟠,巳巳如意,我们开年再会!

miniconda配置及常用命令,windows系统环境变量设置

安装完miniconda后,如果cmd中输入"conda info"没有输出信息,说明需要手动配置环境变量。 (1)右键点击桌面上“此电脑”,点击“属性” (2)在弹出的页面里点击“高级系统设置”(3)点击“环境变量”(4)双击“系统变量”里面的"Path":(5)点击“新…