Я перепробовал много способов добиться того, чего ты хочешь. Я предполагаю, что это изображение 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 .