У меня есть контроллер Python, который использует scrapy-splash
lib, который отправляет SplashRequest
службе Splash.
Локально я запускаю и контроллер, и сервис splash в двух разных докерах.
yield SplashRequest(url=response.url, callback=parse, splash_url=<URL> endpoint='execute', args=<SPLASH_ARGS>)
Когда я отправляю запрос локально с splash_url="http://127.0.0.1:8050
, все работает нормально.
Теперь я хотел развернуть Kubernetes со Splash и обрабатывать запрос splash в облаке. Я создал Splash Deployment и службу с type=LoadBalancer
в Google Cloud Kubernetes.
И отправив запрос заставки External Ip
службы заставки.
Но splash не получает никаких запросов ... и в скрипте python я получаю
twisted.python.failure.Failure twisted.internet.error.TCPTimedOutError: Тайм-аут TCP-соединения: 60: Тайм-аут операции.
Раньше это работало при использовании Internal endpoint
модуля, но я начал получать Missing schema
исключение, потому что я не использовал http://
в URL-адресе.
- всплеск изображения докеров scrapinghub / splash: 3.2
- Kubernetes версии 1.7, (пробовал также на 1.9)
splash-deployment.yaml
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, а при входе на IP-адрес через Kubernetes я получаю
отказался подключиться
Как решить ?? Спасибо