kubernetes - 如何通过https访问kubernetes网站

标签 kubernetes cluster-computing portforwarding

我在一个始终在线的服务器上运行的虚拟机上构建了自己的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://<server-alias>:30000来访问Web界面。

但是我想通过输入https://<server-alias>来访问它而不提供端口。
我知道,这可以使用kubectl port-forwarding命令完成:kubectl -n kube-system port-forward --address 0.0.0.0 svc/traefik-ingress-service 443:443
这有效。但这似乎不是一件很专业的事情。

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

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

谢谢!

最佳答案

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

  • 步骤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
    
  • 步骤2:为您的应用程序创建新的部署,但是请确保您为nginx ingress svc / pod使用相同的 namespace ,并且应用程序,并将svc类型设置为 ClusterIP
  • 步骤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
    

    关于kubernetes - 如何通过https访问kubernetes网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58427810/

    相关文章:

    linux - 如何更新作业以允许我在作业完成运行后收到电子邮件 (slurm)

    linux - Vagrant 的麻烦 - "404 - Not Found"

    go - 如何在 k8s 集群中使用 heapster 获取文件系统/使用情况

    Kubernetes API : cannot list resource "pods" in API group ""

    python - NearestCentroid、python、集群的问题

    java - Apache Helix 与 YARN

    windows - ssh 将端口作为参数传递时本地转发规范错误

    macos - Vagrant VirtualBox 无法正确进行端口转发

    kubernetes - 即使有可用资源,也无法安排广告连播

    docker - 是否可以基于SCRATCH引用构建nodeJS容器?