ubuntu部署k8s

本文详细介绍了在Ubuntu系统上搭建Kubernetes双节点集群的步骤,包括关闭swap内存、配置免密登录、安装docker和k8s、初始化master节点、部署flannel网络、加入slave节点以及解决可能出现的问题。内容涵盖了从环境准备到集群完整搭建的全过程。

目录

提前安装

一. 修改 ubuntu 配置

关闭 swap 内存

配置免密登录

二. 安装 docker

docker 的安装

docker 的配置

三. 安装 k8s

四. 安装 master 节点

初始化 master 节点

配置 kubectl 工具

部署 flannel 网络

五. 将 slave 节点加入网络

默认网卡问题修复

修改 kubelet 默认地址

修改 flannel 的默认网卡

重置节点

常见问题

总结

参考


要注意,对于1.24之上的k8s版本,默认使用安装是contained,要使用docker需要另外安装cri

提前安装

apt-get install -y curl && apt-get install -y vim


一. 修改 ubuntu 配置

首先,k8s 要求我们的 ubuntu 进行一些符合它要求的配置。

1.关闭 Swap 内存

2.配置免密登录

关闭 swap 内存

 k8s 的较新版本都要求关闭swap,修改/etc/fstab文件:

sudo vi /etc/fstab

把下列内容第二条用#注释掉就好了,第一条别注释了,不然重启之后系统有可能会报file system read-only错误。

UUID=e2048966-750b-4795-a9a2-7b477d6681bf /   ext4    errors=remount-ro 0    1
# /dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

ubuntu 22 注释掉 /swap 开头的一行

reboot重启,如果top显示如下即成功

配置免密登录

k8s 要求 管理节点可以直接免密登录工作节点 的原因是:在集群搭建完成后,管理节点的 kubelet 需要登陆工作节点进行操作。而至于怎么操作很简单,这里就不详提了,可以参见文章 virtualbox 虚拟机组网 的最后一个章节 免密钥登录

二. 安装 docker

docker 是 k8s 的基础,在安装完成之后也需要修改一些配置来适配 k8s ,所以本章分为 docker 的安装docker 的配置 两部分。如果你已经安装并使用了一段时间的 docker 了话,建议使用docker -v查看已安装的 docker 版本,并在 k8s 官网上查询适合该版本的 k8s 进行安装。这一步两台主机都需要进行安装。

docker 的安装

docker 在 ubuntu 的安装上真是再简单不过了,执行如下命令即可,在安装之前请记得把镜像源切换到国内。

sudo apt install docker.io

等安装完成之后使用docker -v来验证 docker是否可用。

docker 的配置

安装完成之后需要进行一些配置,包括 切换docker下载源为国内镜像站 以及 修改cgroups

这个cgroups是啥呢,你可以把它理解成一个进程隔离工具,docker就是用它来实现容器的隔离的。docker 默认使用的是cgroupfs,而 k8s 也用到了一个进程隔离工具systemd,如果使用两个隔离组的话可能会引起异常,所以我们要把 docker 的也改成systemd

这两者都是在/etc/docker/daemon.json里修改的,所以我们一起配置了就好了,首先执行下述命令编辑daemon.json

sudo vim /etc/docker/daemon.json

打开后输入以下内容:

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "exec-opts": [ "native.cgroupdriver=systemd" ]
}

然后:wq保存后重启 docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

然后就可以通过docker info | grep Cgroup来查看修改后的 docker cgroup 状态,发现变为systemd即为修改成功。

三. 安装 k8s

安装完了 docker 就可以下载 k8s 的三个主要组件kubeletkubeadm以及

### 部署 Kubernetes (K8s) 集群于 Ubuntu #### 准备工作 为了成功部署 Kubernetes 集群,在开始之前需确认所有节点的操作系统已更新至最新状态并重启。 ```bash sudo apt-get update && sudo apt-get upgrade -y sudo reboot ``` #### 安装 Docker CE 由于 Kubernetes 使用容器运行时来管理 Pod 中的容器,默认推荐使用 containerd 或者 Docker 作为容器运行时。这里介绍通过官方源安装 Docker 的方法: - 添加 Docker 的 GPG 密钥到 APT 键环中[^3] ```bash curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` - 设置稳定版仓库 ```bash echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` - 更新包索引,安装 Docker Engine 并启动服务 ```bash sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io -y sudo systemctl enable docker.service sudo systemctl start docker.service ``` #### 安装 kubeadm, kubelet 和 kubectl 这些工具用于初始化集群、加入新节点以及命令行操作 K8s 资源对象。 - 将 Google Cloud 的签名密钥添加到本地信任库,并配置 Kubernetes APT 源 ```bash curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF ``` - 更新软件列表,指定版本号安装所需组件(此处以 `v1.24.17` 版本为例) ```bash sudo apt-y kubelet=1.24.17-00 kubeadm=1.24.17-00 kubectl=1.24.17-00 sudo apt-mark hold kubelet kubeadm kubectl ``` #### 初始化 Master 节点 完成上述准备工作之后就可以初始化 master 节点了。执行下面这条指令前,请先关闭 swap 功能以免影响后续步骤正常进行。 ```bash sudo swapoff -a ``` 接着可以利用 `kubeadm init` 命令创建一个新的控制平面实例;建议指明 pod 网络 CIDR 参数以便 Calico CNI 插件能够正确识别网络范围。 ```bash sudo kubeadm init --pod-network-cidr=192.168.0.0/16 ``` 按照提示设置好 `.kube/config` 文件权限后即可继续下一步骤——应用网络插件Calico。 ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 下载适用于当前环境的 Calico YAML 文件[^1],并通过kubectl apply 应用它: ```bash wget https://docs.projectcalico.org/manifests/calico.yaml kubectl apply -f calico.yaml ``` 此时应该已经拥有了一个基本可用的小型单机或多主机组成的 Kubernetes 集群了!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信安成长日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值