为 kubernetes pod 分配域名

为 kubernetes pod 分配域名

我有一个运行 nginx 和一些 web 应用程序的服务。k8s 部署清单如下所示:

kind: Service
...
...  
- port: 443
  targetPort: 30443
  protocol: TCP
  name: https
...
---

kind: Deployment
...
...
- containerPort: 443
  hostIP: my ip
  hostPort: 30443
  protocol: TCP

当我通过 https://ip:port 或 https://server_domain_name:port 访问它时,它可以正常工作,但是如何设置 nginx-ingress 以摆脱端口号并仅通过 https://server_domain_name 访问它?

我试图搜索像这样的配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 443

但它不起作用

答案1

正确定义您的服务后,如下所示的内容可能会对您有所帮助。

笔记:请注意,我的集群正在运行旧版本,并且api版本已弃用。您需要检查并根据集群版本更新版本。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - host: domain1.com
    http:
      paths:
      - backend:
          serviceName: domain1-store-service
          servicePort: 80
  - host: domain2.com
    http:
      paths:
      - backend:
          serviceName: domain2-video-service
          servicePort: 80

相关内容