kubernetes1.13.4部署nginx-ingress

helm部署ingress-nginx ingress-nginx是管理南北向流量很好的一个工具,可以避免在云端频繁对LB进行配置,通过Label也可以实现让ingress-nginx都部署在指定的NodeGroup。 阅读详情

基础环境

拥有一个完美运行的kubernetes1.13.4集群并已经部署过dashboard,可参考我的部署文章创建自己的集群。

部署步骤

  1. 编写部署需要的yaml文件

    • mandatory.yaml

      apiVersion: v1
      kind: Namespace
      metadata:
        name: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      
      ---
      
      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: nginx-configuration
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      
      ---
      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: tcp-services
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      
      ---
      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: udp-services
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: nginx-ingress-serviceaccount
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: ClusterRole
      metadata:
        name: nginx-ingress-clusterrole
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      rules:
        - apiGroups:
            - ""
          resources:
            - configmaps
            - endpoints
            - nodes
            - pods
            - secrets
          verbs:
            - list
            - watch
        - apiGroups:
            - ""
          resources:
            - nodes
          verbs:
            - get
        - apiGroups:
            - ""
          resources:
            - services
          verbs:
            - get
            - list
            - watch
        - apiGroups:
            - "extensions"
          resources:
            - ingresses
          verbs:
            - get
            - list
            - watch
        - apiGroups:
            - ""
          resources:
            - events
          verbs:
            - create
            - patch
        - apiGroups:
            - "extensions"
          resources:
            - ingresses/status
          verbs:
            - update
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: Role
      metadata:
        name: nginx-ingress-role
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      rules:
        - apiGroups:
            - ""
          resources:
            - configmaps
            - pods
            - secrets
            - namespaces
          verbs:
            - get
        - apiGroups:
            - ""
          resources:
            - configmaps
          resourceNames:
            # Defaults to "<election-id>-<ingress-class>"
            # Here: "<ingress-controller-leader>-<nginx>"
            # This has to be adapted if you change either parameter
            # when launching the nginx-ingress-controller.
            - "ingress-controller-leader-nginx"
          verbs:
            - get
            - update
        - apiGroups:
            - ""
          resources:
            - configmaps
          verbs:
            - create
        - apiGroups:
            - ""
          resources:
            - endpoints
          verbs:
            - get
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: RoleBinding
      metadata:
        name: nginx-ingress-role-nisa-binding
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: nginx-ingress-role
      subjects:
        - kind: ServiceAccount
          name: nginx-ingress-serviceaccount
          namespace: ingress-nginx
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: ClusterRoleBinding
      metadata:
        name: nginx-ingress-clusterrole-nisa-binding
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: nginx-ingress-clusterrole
      subjects:
        - kind: ServiceAccount
          name: nginx-ingress-serviceaccount
          namespace: ingress-nginx
      
      ---
      
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-ingress-controller
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      spec:
        replicas: 1
        selector:
          matchLabels:
            app.kubernetes.io/name: ingress-nginx
            app.kubernetes.io/part-of: ingress-nginx
        template:
          metadata:
            labels:
              app.kubernetes.io/name: ingress-nginx
              app.kubernetes.io/part-of: ingress-nginx
            annotations:
              prometheus.io/port: "10254"
              prometheus.io/scrape: "true"
          spec:
            serviceAccountName: nginx-ingress-serviceaccount
            containers:
              - name: nginx-ingress-controller
                image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.24.0
                args:
                  - /nginx-ingress-controller
                  - --configmap=$(POD_NAMESPACE)/nginx-configuration
                  - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
                  - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
                  - --publish-service=$(POD_NAMESPACE)/ingress-nginx
                  - --annotations-prefix=nginx.ingress.kubernetes.io
                securityContext:
                  allowPrivilegeEscalation: true
                  capabilities:
                    drop:
                      - ALL
                    add:
                      - NET_BIND_SERVICE
                  # www-data -> 33
                  runAsUser: 33
                env:
                  - name: POD_NAME
                    valueFrom:
                      fieldRef:
                        fieldPath: metadata.name
                  - name: POD_NAMESPACE
                    valueFrom:
                      fieldRef:
                        fieldPath: metadata.namespace
                ports:
                  - name: http
                    containerPort: 80
                  - name: https
                    containerPort: 443
                livenessProbe:
                  failureThreshold: 3
                  httpGet:
                    path: /healthz
                    port: 10254
                    scheme: HTTP
                  initialDelaySeconds: 10
                  periodSeconds: 10
                  successThreshold: 1
                  timeoutSeconds: 10
                readinessProbe:
                  failureThreshold: 3
                  httpGet:
                    path: /healthz
                    port: 10254
                    scheme: HTTP
                  periodSeconds: 10
                  successThreshold: 1
                  timeoutSeconds: 10
      
      ---
      
      
    • cloud-generic.yaml

      kind: Service
      apiVersion: v1
      metadata:
        name: ingress-nginx
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      spec:
        externalTrafficPolicy: Local
        type: LoadBalancer
        selector:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
        ports:
          - name: http
            port: 80
            targetPort: http
          - name: https
            port: 443
            targetPort: https
      
      ---
      
      
  2. 执行命令完成相关部署

    $ kubectl create -f mandatory.yaml
    
    $ kubectl create -f cloud-generic.yaml
    
    
  3. 查看部署结果

    $ kubectl get pod,svc --all-namespaces | grep ingress
    ingress-nginx   pod/nginx-ingress-controller-68647f69b8-2gdbt    1/1     Running   0          6h6m
    ingress-nginx   service/ingress-nginx             LoadBalancer   10.109.194.74    <pending>     80:30448/TCP,443:31808/TCP    5h59m
    
  4. 部署测试应用

    • 编写yaml文件

      $ cat test2.yaml 
      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        name: dashboard-ingress
        namespace: kube-system
        annotations:
          nginx.ingress.kubernetes.io/ingress.class: nginx
          nginx.ingress.kubernetes.io/secure-backends: "true"
          nginx.ingress.kubernetes.io/ssl-passthrough: "true"
      spec:
        tls:
        - hosts:
          - dashboard.minminmsn.com
          secretName: ingress-secret
        rules:
          - host: dashboard.minminmsn.com
            http:
              paths:
              - path: /
                backend:
                  serviceName: kubernetes-dashboard
                  servicePort: 443
      
      
    • 编写host用于dns我们的服务

      # 在hosts文件中添加以下记录
      xx.xx.xx.xx dashboard.minminmsn.com
      # xx.xx.xx.xx 为转化服务的那个节点的ip地址
      
    • 通过ingress访问服务

      在浏览器输入https://dashboard.minminmsn.com:31021 即可看到自己的dashboard界面。

k8s学习--ingress详细解释与应用(nginx ingress controller)) Ingress 是 Kubernetes 中用于管理集群内服务暴露的 API 资源。它提供了 HTTP 和 HTTPS 路由功能,使外部流量能够访问集群内部的服务。通过定义 Ingress 资源,可以控制哪些外部请求能够访问集群中的哪些服务,以及如何路由这些请求。 阅读详情

相关推荐

Kubernetes(k8s)1.28集群部署

kubernetes(k8s)1.28集群部署

wq975826228的博客 1537

使用Helm3.6 安装 Ingress-nginx

NGINX Ingress Controller 是使用 Kubernetes Ingress 资源对象构建的,用 ConfigMap 来存储 Nginx 配置的一种 Ingress Controller 实现。安装 ingress-nginx 有多种方式,本文使用 helm3.6 方式进行安装。其他安装方式可以参考文档:https://kubernetes.github.io/ingress-nginx/deploy/Helm 是一个用于对需要在 k8s 上部署的复杂应用进行定义、安装和更新。

ss810540895的博客 2484

K8S中Ingress-Nginx的部署与配置【CKA备考练习环境准备】1【2025新题】

由于备考CKA,在练习[ingress]这道题的过程中,解题前在自己的Ubuntu练习环境中不可避免的需要进行一些准备工作,比如创建ingress-nginx controller、pod、svc等等,但是正式解题的过程中,出现了依照题目要求所创建的ingress服务始终无法获得Address的情况。一开始看了多套以往的CKA的培训视频和文章,直接按照视频和文章操作后,对应的ingress服务的Address仍然是空的。以下内容就是踩坑过程,希望对备考CKA的同学们有帮助。

Daniel_mazy的博客 998

helm部署ingress-nginx控制器

helm是kubernetes的包管理器,包管理器类似我们在ubuntu中使用的apt在centos中的yum一样,能够快速查找和下载资源包,helm由客户端组件helm和服务组件tiller组成,能够将一组众多分散的k8s资源打包统一管理,是查找共享和使用kubernets构建软件的最佳方式。根据自己的k8s版本进行选择。进入可以查看自己的k8s版本是否适配,这里使用的试kubeeasy工具部署的1.22.1的版本,1.18以上的版本基本适用,containerd底层容器除外,这里docker底。

m0_54534480的博客 2171

深入解析LVDS电平标准在LCD屏接口设计中的关键作用

本文深入解析了LVDS电平标准在LCD屏接口设计中的核心作用。文章不仅阐释了LVDS低电压差分信号的工作原理、关键电气参数及抗噪优势,还详细对比了VESA与JEIDA两种主流数据格式,并提供了从PCB布局布线到信号调试的实战避坑指南,是确保高速、稳定显示的关键技术参考。

weixin_28419039的博客 333

思科模拟器-实验16:三层交换 VLAN 互访配置

【实验内容】 (1)按实验线路连接图进行连接。按照实验线路连接图分别配置各台计算机IP 地 址。 (2) 按照实验线路连接图,在SW1和SW2上分别完成VLAN配置,并在VLAN中添加相应的端口成员,同时配置Trunk端口。同时测试各计算机之间是否可以相互ping 通。 Switch>en Switch#config t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 10 Switc

weixin_44270194的博客 4726

K8S Helm 安装ingress-nginx/ingress-nginx

K8S Helm 安装ingress-nginx/ingress-nginx

crabdave的博客 3108

AI医疗影像诊断工具2025 完整教程

本教程所述工具均为辅助诊断设备,不可替代执业医师判断。部署使用需遵守当地医疗器械管理法规。推荐开源框架组合:代码太多打包上传网盘了 自行下载。2025年的AI医疗影像诊断工具将以。

m0_60084632的博客 2027

ingress-nginx部署-helm方式

本文实践使用helm安装ingress-nginx。

lldhsds的专栏 2356

RK3568 linux-5.10 rk809 声卡实现spk hp自动切换

RK3568 linux-5.10 rk809 声卡实现spk hp自动切换

目前从事linux驱动开发,多交流多学习吧 1093

基于 YOLOv26 的金属表面缺陷检测系统:智能视觉质检方案

摘要: 基于YOLOv26的金属表面缺陷检测系统采用深度学习技术,实现对划痕、裂纹、腐蚀等8类常见缺陷的自动化检测。系统通过数据增强预处理和YOLOv26模型的高精度识别能力,具备多类别分类、实时推理和强鲁棒性特点,适用于不同金属材质与光照条件。架构包含数据采集、预处理、YOLOv26检测和后处理模块,代码实现采用PyTorch框架,支持训练数据增强与标准化处理,为工业质检提供高效智能解决方案。

一键难忘的博客 588

云原生Kubernetes: K8S 1.29版本 部署ingress-nginx

原因是node1节点的cni容器出现了异常无法为pod分配ip导致的卡在ContainerCreating的状态。ingress-nginx-controller部署到node1节点的IP为10.244.166.140。ingress-nginx-controller部署到node2节点的IP为10.244.104.13。ingress-nginx-controller部署到node1节点的IP为10.244.104.13。④在自己的仓库中可以看到上传的镜像,默认上传到公共仓库中。

cronaldo91的博客 2665

21天学会基于 Linux 的 NPU 固件开发--2.2 固件加载流程:request_firmware() 深度解析

本文深度解析Linux内核中NPU固件加载流程,重点剖析request_firmware()机制。内容涵盖:1)内核态与用户态的交互机制,包括同步/异步加载方式;2)NPU固件的特殊格式与加载逻辑;3)调试技巧与安全验证方案;4)提供最小化固件加载器实验。文章揭示了从文件系统到硬件初始化的完整链路,探讨了大模型时代面临的性能挑战与优化方案,如零拷贝加载技术,并提出了版本兼容性、断电恢复等关键问题的思考方向。

amy_mhd的博客 59

在k8s集群中部署多nginx-ingress

关于ingress的介绍,前面已经详细讲过了,参考。本案例ingress的部署使用deployment+LB的方式。

最美dee时光的博客 2838

stata 工具变量法【计量经济系列(七)】

stata 工具变量法【计量经济系列(七)】 1. 内生性 2. 工具变量3. 2SLS (二阶段最小二乘法) 4. 弱工具变量5. 工具变量外生性的过度识别检验 6. 豪斯曼检验6.1 传统豪斯曼 6.2 杜宾-吴-豪斯曼检验(DWH)

侯小啾技术博客 2万+

Labview项目01:标准可配置序列测试框架

摘要:本文介绍了一个基于LabVIEW2020开发的通用测试框架系统。该系统采用模块化设计,包含主界面、调试界面、设置界面和登录界面。主功能包括:1)可配置测试序列,支持延时、预定值输出、随机值输出等操作;2)单步测试功能自主添加;3)界面支持测试序列编辑和权限管理。系统采用队列机制处理事件和测试流程,通过CSV文件存储测试序列,支持参数化配置。用户可自定义测试VI(A_.vi和N_.vi格式),并通过调试界面验证测试序列。最终测试结果在主界面显示,提供整体判断功能。该系统既可作为学习参考,也可用于实际测试

weixin_38637405的博客 1552

K8S 七 kubernetes-1.29 部署 ingress-nginx1.10、nginx1.25

K8S Nginx-Ingress

Lyndon的专栏 1349

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Kubernetes K8S 1.20部署Ingress nginx 0.30

主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110 k8s-node01 CentOS7.7 2C/4G/20G 172.16.1.111 10.0.0.111 k8s-node02 CentOS7.7 2C/4G/20G 172.16.1.112 10

zhangjunli的博客 6344

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Kubernetes Ingress-NGINX终极兼容性实战指南:从K8s 1.23到1.35版本适配方案

在Kubernetes集群升级过程中,Ingress-NGINX控制器版本兼容性问题是每个运维工程师必须面对的挑战。本文为你提供一份完整的Ingress-NGINX兼容性实战指南,涵盖从Kubernetes 1.23到最新1.35版本的适配方案,帮助你避免90%的版本适配陷阱,确保业务流量在集群升级过程中平稳过渡。 ## 项目现状与版本兼容性深度解析 Ingress-NGINX作为Kubern

gitblog_00235的博客 709

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

k8s ingress-nginx 学习

Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。流量路由由 Ingress 资源所定义的规则来控制。下面是 Ingress 的一个简单示例,可将所有流量都发送到同一 Service:ingress是上service上层的流量分发器,能感知协议配置的机制来解析 URI、主机名称、路径等 Web 概念, 让你的 HTTP(或 HTTPS)网络服务可被访问。如 ingress-nginx 就是将svc作为后端服务器,通过虚拟机主机或者前缀来匹配后端。

qq_50247813的博客 1186

【Kubernetes】k8s集群对外服务之Ingress

必须以率直、谦虚的态度,乐观进取、向前迈进

F12138X的博客 2473
上一篇: kubernetes1.13.4部署EFK
下一篇: kubernetes1.13.4部署traefik
KingDragon_Baron
博客等级 码龄12年 55粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值