Невозможно свернуться на внешний IP - PullRequest
0 голосов
/ 16 апреля 2020

Я не могу свернуться на внешний IP-адрес службы. Мой кластер Kubernetes развернут на GKE.

$ kubectl run kubia-container --image=australia/kubia_py --port=8080 --generator=run/v1
kubectl run --generator=run/v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
replicationcontroller/kubia-container created

$ kubectl get pods
NAME          READY  STATUS  RESTARTS  AGE
kubia-container-6b2cs  1/1   Running  0     25s

$ kubectl expose rc kubia-container --type=LoadBalancer --name kubia-http
service/kubia-http exposed

$ kubectl get pods,svc,rc
NAME            READY  STATUS  RESTARTS  AGE
pod/kubia-container-6b2cs  1/1   Running  0     93m

NAME         TYPE      CLUSTER-IP  EXTERNAL-IP  PORT(S)     AGE
service/kubernetes  ClusterIP   10.0.0.1   <none>     443/TCP     6h28m
service/kubia-http  LoadBalancer  10.0.4.238  35.188.42.26  8080:30030/TCP  91m

$ curl 35.188.42.26:8080
curl: (7) Failed to connect to 35.188.42.26 port 8080: Connection refused

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Попробуйте с localhost:30030, это нодпорт, доступный вашему хосту.

Если это не сработает, это означает, что ваш контейнер не прослушивает 8080, вы можете проверить, что вход в модуль и локон localhost:8080.

0 голосов
/ 16 апреля 2020

Я перепробовал много способов добиться того, чего ты хочешь. Я предполагаю, что это изображение australia / kubia_py это ваше собственное изображение. Я думаю, что вы не можете свернуть этот сервис, так как внутри этого изображения в файле nodeapp.py вы поместили запись вроде:

server = HTTPServer(('localhost', 8080), GetHandler) 
print ("Starting server, use <Ctrl-C> to stop") 
server.serve_forever()

Также, если вы проверите netstat внутри контейнера, вы увидите, что он слушает на 127.0.0.1:8080

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      1/python3

Я думаю, что вместо 'localhost' вы должны указать 0.0.0.0 для прослушивания всех интерфейсов.

Я нашел только один способ добиться вывода этого * Приложение 1015 * replicacontroller (я предлагаю попробовать в будущем использовать развертывания ) использовало web-preview . Для этого вам понадобится port-forward ваш модуль.

$ kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
kubia-container-95rrq   1/1     Running   0          44m
user@cloudshell:~ (project-name)$ kubectl port-forward kubia-container-95rrq 8888:8080
Forwarding from 127.0.0.1:8888 -> 8080
Handling connection for 8888
Handling connection for 8888

Порт 8888 был только один из выбранных по умолчанию. У вас есть несколько в меню.

И с помощью WebPreview (используя кнопку из облачной оболочки). смог достичь результата, как показано ниже:

CLIENT VALUES:
client_address=('127.0.0.1', 46696) (127.0.0.1)
command=GET
path=/?authuser=0
real path=/
query=authuser=0
request_version=HTTP/1.1

SERVER VALUES:
server_version=BaseHTTP/0.6
sys_version=Python/3.6.9
protocol_version=HTTP/1.0
host_name=kubia-container-95rrq
host_ip=10.44.1.26

Кроме того, если вы выставляете replicacontroller или deployment, имейте в виду, если вы просто установите --port=8080, он также автоматически установит --port-target как 8080. Рекомендуется, если вы используете kubectl expose, чтобы использовать флаги --port=XX и --target-port=xxxx.

Если вы хотите проверить kubia replicacontroller и service, вы можете использовать в этом примере , как показано ниже:

$ kubectl apply -f kubia-rc-and-service-v1.yaml
replicationcontroller/kubia-v1 created
service/kubia created
user@cloudshell:~ (your-project)$ kubectl get rc,svc
NAME                                    DESIRED   CURRENT   READY   AGE
replicationcontroller/kubia-v1          3         3         3       40s

NAME                      TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)          AGE
service/kubernetes        ClusterIP      10.0.48.1     <none>           443/TCP          8h
service/kubia             LoadBalancer   10.0.51.154   35.240.23.237    80:30785/TCP     40s
$ curl 35.240.23.237:80
This is v1 running in pod kubia-v1-zpj6s

Еще один хороший пример предоставления сервиса и доступа к нему вы можете найти в Официальных документах GKE .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...