kubernetes ingress原理及使用

本文介绍了Kubernetes Ingress的原理,展示了如何部署ingress-nginx-controller,并探讨了多种TLS安全方案。通过创建ingress资源,实现了服务的外部访问,并讨论了问题排查和安全配置策略。
摘要由CSDN通过智能技术生成

概述

k8s提供NodePort类型的Service可以用于向集群外暴露服务,但是其具备一定局限性,如端口维护困难(一个端口只能供一个服务使用且需要提前规划),只能提供4层负载。

一个解决思路是使用具备7层路由功能的代理比如nginx作为所有外部流量的唯一入口,再由代理转发到不同的后台服务。以nginx为例,在集群部署一个nginx并以NodePort类型Service暴露给外部,然后通过添加nginx配置的形式把流量路由到不同后台服务的Service。ingress就是采用类似机制的一套解决方案。其中涉及几个概念:

ingress资源: 用来描述路由规则的资源对象

ingress-controller: ingress控制器,本质是一个代理容器(如nginx),并且在此基础上实现了k8s的控制器机制,监听ingress资源并反馈到代理配置中。以ingress-nginx-controller,它其实是一个具备控制器功能的nginx,动态监听ingress并将其转化为nginx配置。

部署(以ingress-nginx为例)

环境要求kubeVersion: >=1.19.0-0
操作目录 /root/lsd/ingress-nginx

部署ingress-nginx-controller

参考k8s ingress-nginx deploy

helm repo add  ingress-nginx https://kubernetes.github.io/ingress-nginx

helm pull ingress-nginx/ingress-nginx
#pull不下来,直接手动下载
wget https://github.com/kubernetes/ingress-nginx/releases/download/helm-chart-4.0.10/ingress-nginx-4.0.10.tgz

tar zxvf ingress-nginx-4.0.10.tgz
cd ingress-nginx


vi values.yaml    修改相关镜像参数
    registry: registry.hub.docker.com
    image: liangjw/ingress-nginx-controller
	
    
    #注释掉digest
    # digest: sha256:f766669fdcf3dc26347ed273a55e754b427eb4411ee075a53f30718b4499076a
    ...
    
    registry: registry.hub.docker.com
    image: liangjw/kube-webhook-certgen
    #注释掉digest
    digest: sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660
    
    registry: registry.hub.docker.com
    image: ibmcom/defaultbackend-amd64

    
# helm 安装  
helm delete ingress-nginx -n ingress-nginx
helm install ingress-nginx ./  --namespace ingress-nginx --create-namespace
创建ingress资源
apiVersion: networking.k8s.io/v1             
kind: Ingress
metadata:
  name: prometheus-ingress
  namespace: monitoring
spec:
  ingressClassName: nginx    # ingress-controller部署成功后会产生一个默认class:nginx
  rules:
  - host: prometheus-k8s.monitoring   # 用来访问的域名
    http:
      paths:
      - path: "/"                     # 路径转发规则
        pathType: Prefix
        backend:                      # 后台服务,转发到prometheus的9090端口
          service:
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值