用 Helm 部署 ingress-nginx,从仓库拉取到测试访问,全程复制粘贴就行

用 Helm 部署 ingress-nginx,从仓库拉取到测试访问,全程复制粘贴就行

用 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

Pasted image 20250703145556

下载 chart 包,使用 Helm 工具执行拉取操作。

mkdir ingress-nginx
cd ingress-nginx
helm pull ingress-nginx/ingress-nginx

Pasted image 20250703145814

修改 values.yaml文件

vim values.yaml

修改镜像仓库地址,如果无法访问,可以改为国内仓库地址。
Pasted image 20250703171034

修改 hostNetwork,默认为 false,修改为 true
Pasted image 20250703171201

修改dnsPolicy,默认为 ClusterFirst 修改为ClusterFirstWithHostNet
Pasted image 20250703171239

修改部署类型为DaemonSet
Pasted image 20250703171438

部署 chart

创建ingress 命名空间.

kubectl create ns ingress-nginx

定位到 chart 目录后进行安装

helm install ingress-nginx -n ingress-nginx .

检查创建的资源情况

kubectl get all -n ingress-nginx

Pasted image 20250703171823

修改service/ingress-nginx-controller类型为 NodePort

kubectl edit -n ingress-nginx service/ingress-nginx-controller

Pasted image 20250703171946

创建实例测试 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创建 Deploymentserviceingress

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

Pasted image 20250703172737

搞定!就这么简单几步,ingress-nginx 从部署到测试全流程通关~ 相比手动配置 YAML 的繁琐,用 Helm 部署不仅速度快,后续升级、回滚也能一键操作,简直是 K8s 运维的 “效率神器”!

如果部署过程中遇到其他问题,欢迎在评论区留言讨论~ 觉得有用的话,别忘了点赞 + 在看,转发给身边正在搞 K8s 的小伙伴,让他们少走点弯路!下次想看什么实操教程,也可以告诉我哦~

用 Helm 部署 ingress-nginx,从仓库拉取到测试访问,全程复制粘贴就行

此文章为原创文章,作者:胖哥叨逼叨,如若转载,请与我联系并注明出处:https://www.pangshare.com/4116.htm

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2小时前
下一篇 2小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注