kubevela.github.io/i18n/zh/docusaurus-plugin-content-docs/version-v1.4/reference/addons/nginx-ingress-controller.md

1.8 KiB

title
Nginx Ingress Controller

Nginx Ingress controller 通过借助 nginx 实现了 Ingress controller 的功能为集群提供代理和负载均衡的功能。

安装

vela addon enable ingrss-controller

指定 Service Type

可以选择三种服务类型,出于安全考虑默认是 ClusterIP,还可以指定为NodePortLoadBalancer

  • LoadBalancer 需要你的集群运行在某个公有云上,并有一种支持的 cloud LoadBalancer。

    vela addon enable ingrss-controller serviceType=LoadBalancer
    
  • NodePort 类型需要你能够访问集群节点的 IP和端口

    vela addon enable ingrss-controller serviceType=NodePort
    

获取网关地址

如果指定了服务类型是 NodePortLoadBalancer,你可以通过下面的命令,获取到网关的地址:

vela status addon-ingrss-controller -n vela-system --endpoint

如果是 ClusterIP 类型,又可以通过 vela port-forward 命令将网关的端口映射到本地:

vela port-forward -n vela-system addon-ingress-controller 9080:80

卸载

vela addon disable ingrss-controller

例子

部署下面的应用:

cat <<EOF | vela up -f -
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
  name: demo
spec:
  components:
  - name: demo
    type: webservice
    properties:
      image: barnett/canarydemo:v1
      ports:
      - port: 8090
    traits:
    - type: gateway
      properties:
        domain: canary-demo.com
        http:
          "/version": 8090
EOF

访问网关地址:

$ curl -H "Host: canary-demo.com" <ingress-controller-endpoint>/version
Demo: V1