用 Helm 部署 ingress-nginx,从仓库拉取到测试访问,全程复制粘贴就行
还在为 K8s 的 Ingress 配置头疼?手动部署总踩坑?镜像拉不下来、端口映射混乱、部署后访问不通…… 这些问题是不是让你对着屏幕叹气?
别慌!今天教你一个 “偷懒” 妙招 —— 用 Helm 一键部署 ingress-nginx,从添加仓库到测试访问,全程复制粘贴即可搞定!无论是刚入门的 K8s 新手,还是想提高效率的老司机,这篇保姆级教程都能让你少走 99% 的弯路。
话不多说,直接上干货,看完就能上手实操!
环境信息
K8s 版本: 1.33
操作系统: Rocky Linux 9.5
master 主机名称: k8s-master-01,1 台
worker 主机名称: k8s-worker-01、k8s-worker-02、k8s-worker03
containerd 版本: 2.1.1
添加镜像仓库
将 ingress-nginx 相关的 Helm 图表仓库添加到本地 Helm 环境中,以便后续使用 Helm 安装、管理 ingress – nginx 相关的 Kubernetes 资源。
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
更新镜像仓库
更新本地 Helm 仓库索引文件。通过执行该命令,Helm 会从远程仓库下载最新的图表(chart)信息并更新本地索引。
helm repo update
通过执行此命令,系统会在配置的 Helm 仓库里查找与 “ingress-nginx” 相关的信息。
helm search repo ingress-nginx
下载 chart 包,使用 Helm 工具执行拉取操作。
mkdir ingress-nginx
cd ingress-nginx
helm pull ingress-nginx/ingress-nginx
修改 values.yaml文件
vim values.yaml
修改镜像仓库地址,如果无法访问,可以改为国内仓库地址。
修改 hostNetwork,默认为 false
,修改为 true
修改dnsPolicy,默认为 ClusterFirst
修改为ClusterFirstWithHostNet
修改部署类型为DaemonSet
部署 chart
创建ingress 命名空间.
kubectl create ns ingress-nginx
定位到 chart 目录后进行安装
helm install ingress-nginx -n ingress-nginx .
检查创建的资源情况
kubectl get all -n ingress-nginx
修改service/ingress-nginx-controller类型为 NodePort
kubectl edit -n ingress-nginx service/ingress-nginx-controller
创建实例测试 ingress
创建并编辑配置文件my-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
selector:
matchLabels:
run: my-nginx
replicas: 1
template:
metadata:
labels:
run: my-nginx
spec:
containers:
- name: my-nginx
image: nginx:latest
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
run: my-nginx
type: ClusterIP
ports:
- protocol: TCP
port: 8080
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
ingressClassName: nginx
rules:
- host: test.ingress.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-service
port:
number: 8080
从my-nginx.yaml
创建 Deployment
、service
、ingress
kubectl create -f my-nginx.yaml
在 master
节点上添加域名解析
cat >> /etc/hosts <<EOF
10.228.22.20 test.ingress.com
10.228.22.21 test.ingress.com
10.228.22.22 test.ingress.com
10.228.22.23 test.ingress.com
通过curl 进行访问测试
curl test.ingress.com
搞定!就这么简单几步,ingress-nginx 从部署到测试全流程通关~ 相比手动配置 YAML 的繁琐,用 Helm 部署不仅速度快,后续升级、回滚也能一键操作,简直是 K8s 运维的 “效率神器”!
如果部署过程中遇到其他问题,欢迎在评论区留言讨论~ 觉得有用的话,别忘了点赞 + 在看,转发给身边正在搞 K8s 的小伙伴,让他们少走点弯路!下次想看什么实操教程,也可以告诉我哦~
此文章为原创文章,作者:胖哥叨逼叨,如若转载,请与我联系并注明出处:https://www.pangshare.com/4116.htm