首页 > 系统相关 >Ubuntu24.04 部署Kubernetes

Ubuntu24.04 部署Kubernetes

时间:2024-07-25 13:29:08浏览次数:21  
标签:Kubernetes 部署 containerd sudo Ubuntu24.04 apt etc k8s

参考文章:Ubuntu 24.04 安装 Kubernetes - 软件简史 - SegmentFault 思否

一共部署三台机器,IP:192.168.33.4、192.168.33.5、192.168.33.6 都是24.04的虚拟机

1) 设置 Host Name 更新 hosts 文件

登录到各个主机,并使用 hostnamectl 命令设置它们各自的主机名。

sudo hostnamectl set-hostname "k8s-master"
sudo hostnamectl set-hostname "k8s-node1"
sudo hostnamectl set-hostname "k8s-node2"

将以下行添加到每个实例上的 /etc/hosts 文件中。 

192.168.33.4 k8s-master
192.168.33.5 k8s-node1
192.168.33.6 k8s-node2

2) 禁用 swap,加载内核模块

在每个实例上运行以下命令来禁用交换空间,这样 Kubernetes 集群才能顺利工作。

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

使用 modprobe 命令加载以下内核模块。

sudo modprobe overlay
sudo modprobe br_netfilter

要永久加载这些模块,请创建包含以下内容的文件。

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

接下来,添加像 IP 转发这样的内核参数。创建一个文件,并使用 sysctl 命令加载参数。

sudo tee /etc/sysctl.d/kubernetes.conf <<EOT
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOT

运行以下命令,加载上述内核参数。

sudo sysctl --system

3) 安装配置 Containerd

Containerd 为 Kubernetes 提供了容器运行时,在所有三个实例上安装 containerd

首先,安装容器依赖项

sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates

接下来,使用以下命令添加 containerd 存储库。

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/containerd.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

现在,使用以下 apt 命令安装 containerd

sudo apt update && sudo apt install containerd.io -y

接下来,配置 containerd,使其开始使用 SystemdCgroup 运行下面的命令。

containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml

重新启动 containerd 服务,使上述更改生效。

sudo systemctl restart containerd

4) 添加 Kubernetes Package Repository

Kubernetes 软件包在 Ubuntu 24.04 的默认包存储库中不可用,所以要先添加它的存储库。在每个实例上运行这些步骤。

注意: 在撰写本文时,Kubernetes 的最新版本是 1.30 所以你可以根据自己的需求选择版本。

使用 curl 命令下载 Kubernetes 包存储库的公共签名密钥。

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

接下来,通过运行以下命令添加 Kubernetes 存储库。

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

5) 安装 Kubernetes 部件 (Kubeadm, kubelet & kubectl)

安装 Kubernetes 组件,在所有实例上运行以下 apt 命令。

sudo apt update
sudo apt install kubelet kubeadm kubectl -y

6) 安装 Kubernetes

所有的先决条件都满足了,我们可以开始安装 Kubernetes 了。

在 master 节点上执行 Kubeadm 命令,仅用于初始化 Kubernetes 集群。

sudo kubeadm init --control-plane-endpoint=k8s-master

该命令将为 Kubernetes 集群拉取所需的镜像。成功执行此命令后,我们将得到如下所示的输出。

在上面的输出中,我们将获得一系列命令。例如:如何与 kubernetes 群集互动,如何添加 worker 节点到此群集。

在 master 节点上运行以下命令。

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

在master节点上云霄以下命令

kubectl get nodes

7) 安装 Calico Network Add-on Plugin

仅在 master 节点上运行如下的命令

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml

注意里面的版本,是需要对应的

calico 安装成功后,节点状态会在 5~ 6 分钟后变为 Ready

kubectl get pods -n kube-system

7) 添加子节点

接下来,从输出中复制命令以连接 node 节点,在两个 node 节点上运行它。

kubeadm join k8s-master:6443 --token y9ne07.f9hqxxhueynl43ld \
        --discovery-token-ca-cert-hash sha256:e6738fb8ef5504746a0dbe12ee68c35508a192d3f3a5d25a40332228c9b0dca6

 

在master节点运行命令

kubectl get pods -n kube-system

标签:Kubernetes,部署,containerd,sudo,Ubuntu24.04,apt,etc,k8s
From: https://www.cnblogs.com/ZXdeveloper/p/18322301

相关文章

  • 5个步骤将Web项目部署到PetaExpress云服务器
    1.先登录PetaExpress云账号,选择云服务器,选择购买云服务器,选择您所需要的配置,包括cpu类型,操作系统镜像,以及系统盘,数据盘大小,点击下一步:建议选择2c2m型号来运行windows服务器系统,我在这里选择4c核心cpu,4G内存。请认真阅读全文,最后教你免费领取一台免费服务器。2.选择您想要网络类......
  • 【云原生之kubernetes实战】在k8s环境下部署go-file文件分享工具
    【云原生之kubernetes实战】在k8s环境下部署go-file文件分享工具一、go-file介绍1.1go-file简介1.2go-file特点1.3go-file使用场景二、本次实践介绍2.1本次实践简介2.2本次环境规划2.3本次实践存储介绍2.4k8s存储介绍三、检查k8s环境3.1检......
  • 基于springboot+vue.js+uniapp的小程序的英语学习交流平台附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • RK3588 RKNN环境部署
    前言,官方提供两种部署环境,其中按照官方说法为了完全运行RKNN环境采用Docker的部署环境方案。1.安装Docker环境 (1)检查卸载老版本Docker sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc (2)安装Docker依赖 sudoapt-getinstallca-certifica......
  • 抖音短视频seo矩阵系统源码开发搭建私有化部署流程分享-----PHP+SaaS独立部署
      抖音seo源码优化逻辑抖音SEO是通过一系列的技术手段和优化策略来提升视频内容在抖音平台内的曝光率和排名。其中主要包括以下几个方面:1.关键词优化。通过对视频的标题、描述等元素的关键词进行优化,提高相关性和匹配度,让用户更容易搜索到相关视频。2.标签优化。在上传视......
  • 基于微信小程序+协同过滤推荐算法+SpringBoot+数据可视化的校园顺路代送平台设计和实
    博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P......
  • 在 Azure 上部署代码时使用 Python 的多处理模块是否有意义?
    我们的团队在Azure机器学习(AML)上部署了一个Python脚本来处理存储在Azure存储帐户上的文件。我们的管道由一个ForEach活动组成,该活动调用每个或列出的文件的Python脚本。从Azure数据工厂(ADF)运行它会触发多个单独的管道同时运行......
  • Nacos 高级详解:提升你的开发和部署效率
    Nacos高级一、服务集群需求服务提供者搭建集群服务调用者,依次显示集群中各服务的信息搭建修改服务提供方的controller,打印服务端端口号packagecom.czxy.controller;importorg.springframework.web.bind.annotation.*;importjavax.annotation.Resour......
  • 本地快速私有化部署和运行大语言模型
    ollama是一个快速部署和运行大语言模型的开源工具,https://ollama.com/。通过它可以在终端与大语言模型交互,而且安装非常的简单,支持非常多的模型,并且可以随意切换模型,支持模型地址:https://ollama.com/library如果你想使用LLM模型但是又不想暴露你的私人数据到公网,不放试......
  • 有手就行,轻松本地部署 Llama、Qwen 大模型,无需 GPU
    用CPU也能部署私有化大模型?对,没错,只要你的电脑有个8G内存,你就可以轻松部署Llama、Gemma、Qwen等多种开源大模型。非技术人员,安装Docker、Docker-compose很费劲?不用,这些都不需要安装,就一个要求:有手就行~今天主要为大家分享保姆级教程:如何利用普通个人电脑,本地私有......