【问题标题】:How to access kubernetes websites via https如何通过 https 访问 Kubernetes 网站
【发布时间】:2019-10-17 08:08:39
【问题描述】:

我在虚拟机上构建了自己的 1 主机 kubernetes 集群(1 主机、1 个节点、许多命名空间、许多 pod 和服务),并在始终在线的服务器上运行。

在集群上运行的应用程序运行良好(基本上是 NodeJS 后端和 HTML 前端)。 到目前为止,我有一个 NodePort 服务,它暴露了 30000 端口:

NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
traefik-ingress-service   NodePort    10.109.211.16    <none>        443:30000/TCP            147d

所以,现在我可以通过在浏览器地址栏中输入https://&lt;server-alias&gt;:30000 来访问网络界面。

但我想在不提供端口的情况下访问它,只需键入https://&lt;server-alias&gt;。 我知道,这可以通过 kubectl port-forwarding 命令完成: kubectl -n kube-system port-forward --address 0.0.0.0 svc/traefik-ingress-service 443:443

这行得通。但这似乎不是一件很专业的事情。

端口转发似乎也时常断开连接。有时,它会抛出一个错误并退出,但让进程保持打开状态,从而使端口保持打开状态 - 必须手动终止进程。

那么,有没有办法专业地完成访问我的应用程序的工作?集群提供商(AWS、GCP...)如何做到这一点?

谢谢!

【问题讨论】:

  • 这就是 ingress 的用途
  • 请查看不同的Ingress Controllers 我们可以看到您已经安装了其中一个,因此请按照Traefik Controller 进行安装和配置后,您应该使用具有适当入口类的入口资源,例如:@987654328 @.
  • 可以直接申请this方法

标签: kubernetes cluster-computing portforwarding


【解决方案1】:

使用 Ingress Nginx,您可以使用名称服务器访问您的网站:

  1. 第 1 步:在您的集群中安装 Nginx 入口,您可以流式传输此 link

安装完成后你会有一个新的pod

NAME                                    READY   STATUS

nginx-ingress-xxxxx                     1/1     Running

还有一个新的服务

NAME                             TYPE           CLUSTER-IP     EXTERNAL-IP
nginx-ingress                    LoadBalancer   10.109.x.y     a.b.c.d
  1. 第 2 步:为您的应用程序创建新部署,但确保您为 nginx 入口 svc/pod 和您的应用程序使用相同的名称空间,并将 svc 类型设置为 ClusterIP

  2. 第 3 步:创建 Kubernetes 入口对象

现在你必须创建入口对象

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: **Same Name Space**
spec:
  rules:
  - host: your DNS  <server-alias>
    http:
      paths:
      - backend:
          serviceName: svc Name
          servicePort: svc Port

现在您可以使用 .

访问您的网站。

要免费创建 DNS,您可以使用 freenom 或使用 /etc/hosts 更新它:

server-alias a.b.c.d

【讨论】:

    【解决方案2】:

    由于您的 Traefik Ingress Service 的类型是 NodePort,因此您可以访问提供的端口,其值介于 30000-32000 之间。

    您还可以将其配置为 LoadBalancer 类型并与基于云的负载均衡器交互。 参考:https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/

    这是一个非常相关的问题:Should I use NodePort in my Traefik deployment on Kubernetes?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      相关资源
      最近更新 更多