K8S 1.31部署到Linux教程

注意

本文为个人早期的一个探索,存在一些漏洞,最新部署教程请查看本人的最新博客,亲测有效!!!

链接如下:

AWS EC2上部署k8s v1.33(保姆级教程,亲测可用!)-优快云博客

前言

因公司项目需要,准备学习k8s,但是网上教程中的k8s版本均比较旧,因此个人在阅读官方文档以及借鉴多方资料后,将个人使用虚拟机部署的过程记录下来,供大家参考。

配置及版本

软件名称 版本
K8S 1.31
VMware Workstation Pro 17
CentOS Stream-9-x86_64

虚拟机配置

VMware及CentOS的安装过程,网上教程比较多,且与本文核心内容关联不大,因此不作叙述,默认在VMware上已经安装好了两台虚拟机。

官方文档配置说明

个人设置的虚拟机配置

如图,该配置仅适用于本文教程请根据个人实际情况进行调整

控制面节点部署过程

切到超级权限(可选,但是强烈建议,会省去不少操作)

后续一些操作,如设置防火墙端口等,需要sudo权限,因此为了方便可以一开始先切到sudo权限。

输入

sudo -s

 然后输入超级管理员的密码即可,实际效果如图

设置防火墙

官方文档要求开放如下端口

 输入如下命令来永久开启端口

firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=2379-2380/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10259/tcp
firewall-cmd --permanent --add-port=10257/tcp

实际效果

输入如下命令来重启防火墙服务

systemctl restart firewalld

输入如下命令来检查端口是否开放成功

firewall-cmd --list-all

实际效果

 可见相关端口均已开放

设置网络

输入如下命令以便支持 Kubernetes 集群的一些基本网络功能

cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

# 重新加载 sysctl 配置以使更改立即生效
sysctl --system

关闭交换分区

官方文档说明

 输入如下命令来查看是否有交换分区

free -m

 结果如图

### 部署 Ingress 控制器 为了在 Kubernetes 1.31部署 Ingress 控制器,通常会选择 NGINX Ingress Controller 这样的流行解决方案。这不仅因为其广泛的社区支持和丰富的功能集,还因为它能够很好地适应各种复杂的网络需求[^2]。 #### 准备工作 确保集群已经安装并运行正常,并拥有足够的权限来创建命名空间和服务账户等资源对象。对于特定版本如 1.31 的兼容性问题,则需查阅官方文档确认是否有特殊注意事项或已知缺陷。 #### 安装 Helm 并设置仓库 Helm 是 Kubernetes 上的应用包管理工具,可以简化软件的安装过程。通过 Helm Chart 可以快速完成 Ingress Controller 的部署: ```bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update ``` #### 使用 Helm 安装 Ingress-Nginx 接下来利用 Helm 来安装最新的稳定版 Ingress-Nginx 到指定命名空间内,默认情况下会创建一个新的 `ingress-nginx` 命名空间: ```bash helm install ingress-nginx ingress-nginx/ingress-nginx \ --namespace ingress-nginx \ --create-namespace ``` 此命令将会启动一个包含控制器 Pod 和必要的 ConfigMap 资源的对象集合,在大多数环境中都能立即投入使用[^3]。 #### 创建自定义配置 (可选) 如果需要调整默认行为,比如修改日志级别或是启用 SSL 终端等功能时,可以通过编辑 values 文件来自定义安装参数。更多高级选项请参阅项目 GitHub 页面获取最新指南。 #### 测试 Ingress 功能 最后一步是验证新安装的服务是否按预期工作。为此可以在同一命名空间下建立简单的 HTTP Server Deployment 加上 Service 对象作为测试目标;接着编写一条基本路径匹配规则指向该服务地址即可实现对外部请求的成功转发。 ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress spec: rules: - host: "example.local" http: paths: - pathType: Prefix path: "/" backend: service: name: test-service port: number: 80 ``` 上述 YAML 描述了一个最基础形式的 Ingress 规则实例,其中指定了域名映射关系以及对应的后端处理逻辑[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SuperGodK

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

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

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

打赏作者

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

抵扣说明:

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

余额充值