使用入口资源中的主机名/子域从外部访问应用程序

时间:2019-11-18 21:01:21

标签: kubernetes kubernetes-ingress nginx-ingress kube-dns

需要使用下面的代码中指定的Ingress 主机名/子域从外部访问应用程序。 例如。test-app.dev-cluster-poc.company.domain。

cat app-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  name: app-ingress
spec:
  rules:
  - host: test-app.dev-cluster-poc.company.domain
    http:
      paths:
      - backend:
          serviceName: appsvc1
          servicePort: 80
        path: /app1
      - backend:
          serviceName: appsvc2
          servicePort: 80
        path: /app2

在使用url中的步骤进行故障排除时,我发现“ kubectl get ingress”输出中没有地址。期望如下所示的IP地址。

enter image description here

但是,我看到如下图,第三列为空。 enter image description here

从外部访问应用程序(例如注册主机名(test-app.dev-cluster-poc.company.domain)或添加A记录或在kubernetes集群中运行任何dns服务)需要进行哪些必要的配置。

是什么导致“ kubectl get ingress”命令中的ADDRESS列为空。

[编辑]

apiVersion: v1
kind: Service
metadata:
  name: appsvc1
  namespace: ingress
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: app1

如下所示的Nginx控制器服务。

cat nginx-ingress-controller-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress
  namespace: ingress
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30000
      name: http
    - port: 18080
      nodePort: 32000
      name: http-mgmt
  selector:
    app: nginx-ingress-lb

0 个答案:

没有答案