gpt4 book ai didi

kubernetes - 是否可以通过 Kubernetes Controller 节点提供应用程序?

转载 作者:行者123 更新时间:2023-12-02 12:13:18 25 4
gpt4 key购买 nike

我在一组 Raspberry Pi4 计算机上构建了一个 K3s ( https://k3s.io ) 集群。

Controller (ctrl-1) 节点是一个网关,因为它有 2 个网络接口(interface)。一个连接到我的 LAN,另一个连接到它创建的网络,例如K3S-局域网。两个节点( node-1node-2 )部署到 K3S-LAN。

我希望能够通过 ctrl-1 访问节点上运行的应用程序,例如从局域网。这是因为这个集群是可移植的,所以只有 ctrl-1节点需要连接到访客 LAN。 (是的,DNS 名称等问题需要解决,但我想先运行基础知识)。

这意味着我需要能够通过ctrl-1“代理”入口。 .我认为我对此有正确的想法,因为我使用 Helm 将“nginx-ingress”部署到 master。但是我忘记了这个服务 - 这已经安排在节点上,而它需要在 Controller 上以便打开端口(我认为)。但是我找不到如何使服务在 Controller 上运行。

目前,我的服务类型为 NodePort .我可以安装 MetalLB 以便拥有 LoadBalancer能力。但是,根据我所看到的,我不确定这是否有帮助。
ctrl-1没有任何污点设置,只是主人的角色。

我在这里吠错树了吗?我想这可能不是 Kubernetes 的预期用例,但我正在玩一个想法。感谢人们的任何想法。

更新*

我刚刚想到解决这个问题的方法可能是在 ctrl-1 上运行 HAProxy (作为主机上的另一个服务)并设置规则以代理到集群中的必要服务。这将充当网络之间的桥梁。

最佳答案

  • 您只需通过 Nodeport 类型的服务公开您的 pod,即可通过 http://master-node-ip:nodeport 访问它.确保 kube-proxy 正在所有主节点和工作节点上运行。
  • 只要您的主服务器上运行 kube-proxy,入口方法也应该有效。您在集群上部署 nginx 入口,它将被部署到工作节点中。然后,您可以使用 NodePort 服务公开 nginx 入口 Controller 本身。在此之后,您可以创建用于配置 nginx 入口 Controller 的入口资源,以将流量路由到在工作节点上运行的后端 pod 和服务。后端 pod 的服务应该是 ClusterIP 类型。

  • 部署 nginx 入口 Controller 并使用 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.27.1/deploy/static/provider/baremetal/service-nodeport.yaml 通过 NodePort 服务公开它

    部署 nginx pod(以 nginx 为例..这应该是你的 pod) kubectl run nginx --generator=run-pod/v1 --image=nginx
    通过 ClusterIP 服务公开 nginx pod
    apiVersion: v1
    kind: Service
    metadata:
    labels:
    run: nginx
    name: nginx-service
    spec:
    ports:
    - port: 80
    protocol: TCP
    targetPort: 80
    selector:
    run: nginx

    创建入口资源
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: mycha-ingress
    annotations:
    kubernetes.io/ingress.class: "nginx"
    spec:
    rules:
    - http:
    paths:
    - path: /
    backend:
    serviceName: nginx-service
    servicePort: 80

    通过以上设置,我现在可以访问 nginx 并通过 http://master-node-ip:NodePort of nginx ingress controller 获得“欢迎使用 nginx!”

    关于kubernetes - 是否可以通过 Kubernetes Controller 节点提供应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59917732/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com