指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

nginx-ingress的使用

为什么用到nginx-ingress?,在配置完k8s以后,比如说我通过go开发的api对外提供服务,我可能需要对外提供服务,在这个过程中,需要将IP地址解析到域名,开始我准备使用istio配置的, 但是后来由于版本的问题,一直有问题,我的k8s是1.18.6,后来想到nginx-ingress,这个一定要注意版本的选择,在github 上基本上只列出了k8s1.19+以上的版本的兼容信息,我就选择了 v0.45.0版本,结果没有任何问题

这是我的ingress配置文件

# test-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: nginx-network-ingress
  namespace: nginx-ingress-namespace
spec:
  # 1.18及以后版本需要通过ingressClassName指定使用的controller,或者在ingressClass中设置默认controller,否则ingress不生效
  ingressClassName: nginx
  rules:
    - host: ingress.xxx.com
      http:
        paths:
          - path: /
            backend:
              serviceName: nginx-ingress-app-service
              servicePort: 8082
  tls:
    - hosts:
       - ingress.xxx.com
      secretName: nginx-ingress-app-secret

然后执行:

[root@k8smaster k8s-nginx-ingress]# kubectl apply -f network-ingress.yaml
ingress.networking.k8s.io/nginx-network-ingress created

检查域名映射情况:
[root@k8smaster k8s-nginx-ingress]# kubectl get ingresses -n nginx-ingress-namespace
NAME                    CLASS   HOSTS                   ADDRESS           PORTS     AGE
nginx-network-ingress   nginx   ingress.xxx.com           nodeIp          80, 443   2m38s

由于配置了tls,所以这里可以通过https访问,至于怎么配置https我在下一篇会讲到

--返回--