gpt4 book ai didi

networking - 将外部IP分配给Kubernetes服务

转载 作者:行者123 更新时间:2023-12-03 21:43:31 26 4
gpt4 key购买 nike

编辑:我的安装程序的全部目的是实现(如果可能)以下各项:

  • 我有多个k8s节点
  • 当我联系IP地址(来自公司网络)时,应将其路由到我的容器/ pod /服务/其他任何一个。
  • 我应该能够轻松设置该IP(例如在我的服务.yml定义中)

  • 我正在运行一个小的Kubernetes集群(使用kubeadm构建),以评估是否可以将Docker(旧)Swarm安装程序移至k8s。我绝对需要的功能是能够为容器分配IP,就像使用MacVlan一样。

    在当前的docker设置中,我正在使用MacVlan将公司网络的IP地址分配给某些容器,以便可以直接访问(而不使用反向代理),就像它是任何物理服务器一样。我正在尝试通过k8s实现类似的功能。

    我发现:
  • 我必须使用Service
  • 我无法使用LoadBalancer类型,因为它仅适用于兼容的云提供商(例如GCE或AWS)。
  • 我应该使用ExternalIPs
  • 入口资源是某种反向代理吗?

  • 我的yaml文件是:
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
    name: nginx-deployment
    spec:
    template:
    metadata:
    labels:
    app: nginx
    spec:
    containers:
    - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 80
    nodeSelector:
    kubernetes.io/hostname: k8s-slave-3
    ---
    kind: Service
    apiVersion: v1
    metadata:
    name: nginx-service
    spec:
    type: ClusterIP
    selector:
    app: nginx
    ports:
    - name: http
    protocol: TCP
    port: 80
    targetPort: 80
    externalIPs:
    - A.B.C.D

    我希望我的服务获得IP A.B.C.D(这是我公司的网络之一)。我的部署正在正常进行,因为我可以使用它的ClusterIP从k8s集群内部访问我的nginx容器。

    我想念什么?或者至少,在哪里可以找到有关网络流量的信息以查看数据包是否到来?

    编辑:
    $ kubectl get svc
    NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    kubernetes 10.96.0.1 <none> 443/TCP 6d
    nginx-service 10.102.64.83 A.B.C.D 80/TCP 23h

    谢谢。

    最佳答案

    如果这只是为了测试,请尝试

    kubectl port-forward service/nginx-service 80:80

    那么你也能
    curl http://localhost:80

    关于networking - 将外部IP分配给Kubernetes服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44519980/

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