gpt4 book ai didi

docker - 在GKE的Kubernetes上连接到Splash服务

转载 作者:行者123 更新时间:2023-12-02 12:07:33 24 4
gpt4 key购买 nike

我有一个使用scrapy-splash lib的Python Controller ,该库将SplashRequest发送到Splash服务。

在本地,我在两个不同的Docker中同时运行 Controller 和启动服务。
yield SplashRequest(url=response.url, callback=parse, splash_url=<URL> endpoint='execute', args=<SPLASH_ARGS>)
当我使用splash_url="http://127.0.0.1:8050在本地发送请求时,一切正常。

现在,我想使用Splash进行Kubernetes部署,并在云上处理启动请求。我已经在Google Cloud Kubernetes上使用type=LoadBalancer创建了Splash Deployment和服务。

并将启动请求发送到启动服务的External Ip

但是splash没有收到任何请求...并且在python脚本中我得到了

twisted.python.failure.Failure twisted.internet.error.TCPTimedOutError: TCP connection timed out: 60: Operation timed out.



在过去使用Pod的 Internal endpoint时,它可以正常工作,但是由于没有在URL中使用 Missing schema,我开始出现 http://异常。
  • splash docker image scrapinghub / splash:3.2
  • Kubernetes 1.7版(也在1.9版上尝试过)

  • 初始部署
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    labels:
    app: my-app
    name: splash
    namespace: ns-app
    spec:
    replicas: 1
    strategy: {}
    template:
    metadata:
    labels:
    app: splash
    spec:
    containers:
    - image: scrapinghub/splash:3.2
    name: splash
    ports:
    - containerPort: 8050
    resources: {}
    restartPolicy: Always
    status: {}

    splash-service.yaml
    apiVersion: v1
    kind: Service
    metadata:
    labels:
    app: app
    name: splash
    namespace: ns-app
    spec:
    type: LoadBalancer
    ports:
    - name: "8050"
    port: 8050
    targetPort: 8050
    protocol: TCP
    selector:
    app: app
    status:
    loadBalancer: {}

    更新
    我在本地注意到,当我进入 http://localhost:8050/时,我看到了Splash UI,而通过Kubernetes IP输入时,我得到了

    refused to connect



    如何解决呢?
    谢谢

    最佳答案

    问题在于splash-service.yaml选择器是错误的。它应指向部署名称。

    apiVersion: v1
    kind: Service
    metadata:
    labels:
    app: app
    name: splash
    namespace: ns-app
    spec:
    type: LoadBalancer
    ports:
    - name: "8050"
    port: 8050
    targetPort: 8050
    protocol: TCP
    selector:
    app: splash
    status:
    loadBalancer: {}

    关于docker - 在GKE的Kubernetes上连接到Splash服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49168681/

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