Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 代码发布 › Kubernetes 1.20+ 在 Ubuntu 20.04 LTS 上的管理节点初始化

Kubernetes 1.20+ 在 Ubuntu 20.04 LTS 上的管理节点初始化

Eswlnk的头像
Eswlnk
2023-01-20 20:34:01
Kubernetes 1.20+ 在 Ubuntu 20.04 LTS 上的管理节点初始化-Eswlnk Blog
智能摘要 AI
本文介绍了在 Hyper-V 下的 Ubuntu 20.04 LTS 环境中部署 Kubernetes 的步骤。首先更新系统并安装 containerd 作为容器运行时,并确保其使用 systemd 的 cgroups 以避免初始化失败。接着安装 Kubernetes 组件 kubeadm、kubelet 和 kubectl,并进行必要的网络和内核配置,如启用 IP 转发和加载相关模块。设置节点的 IP 和主机名,关闭 swap 分区后,通过 `kubeadm init` 初始化管理节点,并部署 Pod 网络插件。最终完成 Kubernetes 管理节点的配置和网络插件的部署。

前言

想要部署自己的私有容器了,听说 Kubernetes(后文可能简称“K8S”) 大红大紫,当然要试试。然而,2021 年年初的 K8S 版本已经开始弃用 Docker。在了解了社区 这么做的理由 后,当然要跟一把风弃用 Docker 了(反正早晚会被逼迫迁移)。

环境:Hyper-V 下的 Ubuntu 20.04 LTS amd64; 6GB RAM

步骤

1. 前期准备

# 更新软件源与系统
# sudo su -
apt update
apt upgrade

# 安装容器运行时(containerd)
apt install containerd

# 初始化容器运行时
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

重要:我在这里遇到了一个坑,为了后续使 K8S 管理节点初始化正常,我们还需让 containerd 使用 systemd 的 cgroups,否则可能会初始化失败。这一点在网上很多 guide 中没有被提及。

来自 Wiki 的解释:

When systemd is chosen as the init system for a Linux distribution, the init process generates and consumes a root control group (cgroup) and acts as a cgroup manager. Systemd has a tight integration with cgroups and allocates a cgroup per systemd unit. It’s possible to configure your container runtime and the kubelet to use cgroupfs. Using cgroupfs alongside systemd means that there will be two different cgroup managers.

2.  让 containerd 使用 systemd cgroups

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  ...
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true

3. 安装 Kubernetes

# 增加 Google 的软件源
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add
apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
apt update

# 安装 K8S
apt install kubeadm kubelet kubectl

4. 安装前的准备

# 要使 K8S 正常初始化,我们必须做一些前期准备工作。这可能包括开启转发,允许 iptables 监测桥接流量,关闭 swap 等等。

# 配置网络
nano /etc/sysctl.conf
# 设置
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
# 保存
sysctl -p

# 加载内核模块(层叠网络与适用于桥接流量的 netfilter)
modprobe overlay
modprobe br_netfilter

5. 设置 IP 与主机名

# K8S 的节点须具备一个内部可以被解析的域名
nano /etc/hosts
# 加入一行:<IP 地址> <主机名 / 域名>
hostnamectl set-hostname <主机名>

6. 关闭 Swap

# 在 fstab 中找到 swap 字眼的条目注释掉
nano /etc/fstab

# 关闭 swap
swapoff -a

7. 初始化 K8S 管理节点

kubeadm config images pull
kubeadm init --pod-network-cidr=<IP 地址 / 前缀>

# IP 地址可以是 IPv6,默认前缀为 /64;IPv4 的前缀默认是 /24。

8. 如果没有报错的话,即代表管理节点成功初始化了。在使用前,我们可能还需要进一步准备。

# sudo su -
# 在 “控制平面 / 管理节点”,使用这个命令来创建集群目录:
mkdir -p $HOME/.kube

# 将配置文件拷贝到这个目录
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# 设置权限
chown $(id -u):$(id -g) $HOME/.kube/config

# 部署 Pod 网络到集群中(案例中使用 weave-net)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
configk8skuberneteslts初始化
0
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
「代码测试」使用假设和 Pytest 在 Python 中开始基于属性的测试
上一篇
「运维」不实用操作之设置CentOS欢迎语
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「日志记录」逆向必应翻译网页版API实现免费调用
  • 「代码分享」第三方平台VIP视频解析API接口
  • 「至臻原创」某系统网站登录功能监测
  • 「开发日志」在Vue3中如何为路由Query参数标注类型
  • 「其他分享」分享一个在Tun模式下可用的脚本
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

小伍关于Elixir中的代数数据类型的详细解答
2022-06-01 21:43:10
将libfuzzer移植为动态链接库的实践:增强灵活性与应用场景拓展
2023-07-10 13:19:25
API接口上云|Serverless云函数服务部署实战
2022-02-25 1:35:58

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.458 秒   |  SQL查询 25 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈