千家信息网

k8s ingress-nginx

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理
千家信息网最后更新 2025年12月01日k8s ingress-nginx

kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理是:

Ingress Controller 会动态感知集群中的Ingress的规则变化,然后读取,动态生成Nginx的配置文件,最后注入到运行nginx的pod的中,然后会自动reload,配置生效。

用kubernetes Ingress 是由于它是7层调度,可以直接卸载https会话,代理的后端的pod可以直接使用明文的http协议。

而Service NodePort得类型,是4层得调度,做不到这点,然而现在https是一种趋势,所以在kubernetes 对外暴露服务得时候我们还是要选择Ingress。

下面我们来看下Ingress得部署:
原理图

1.创建后端容器和service

首先创建一个文件夹专门放置Igress得yaml得文件,mkdir ingress
vim myapp.yaml

apiVersion: apps/v1kind: Deploymentmetadata:  name: myappspec:  replicas: 3  selector:    matchLabels:      app: myapp  template:    metadata:      labels:        app: myapp    spec:      containers:        - name: myapp-ding          image: ikubernetes/myapp:v2---apiVersion: v1kind: Servicemetadata:  name: myapp    #等会ingress就靠这个来匹配spec:  selector:    app: myapp  type: ClusterIP  ports:  - port: 80    targetPort: 80

2.配置ingress的配置文件

apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: ingress-ding  namespace: default  annotations:    kubernetes.io/ingress.class: "nginx"spec:  rules:  - host: www.yang.com    #虚拟机主机域名    http:      paths:      - path:        backend:          serviceName: myapp          #代理后端的service 的name          servicePort: 80          #后端service的端口
0