Добро пожаловать в переполнение стека!
Команды, которые вы отправили, не работают, потому что у вас есть опечатка и порты контейнеров не совпадают.
Объяснение проблемы:
Здесь вы создаете новое развертывание с именем mycluster
, но не открываете ни один порт. kubectl create deployment mycluster --image=gcr.io/cloud-marketplace/google/nginx1
Здесь вы раскрываете развертывание с именем mycluster-727
на порту 80
и целевому порту 8080
:
kubectl expose deployment mycluster-727 --type LoadBalancer --port 80 --target-port 8080
Здесь вы находитесь установка образа для развертывания дифференциалов nginx
и с другой версией, которая была запрошена 1.10.0
: kubectl set image deployment nginx nginx=nginx:1.9.1
Устранение проблемы
Я проверил, и образы gcr.io/cloud-marketplace/google/nginx1
и nginx:1.10.0
и оба они используют порт 80
для представления приложения, поэтому вместо использования --targer-port=8080
вам нужно использовать порт 80
, , но вам также необходимо выставить контейнер por при создании развертывания.
На основе ответа @nischay goayl
следующая команда создаст развертывание и откроет порт 80: kubectl run mycluster --image=nginx:1.10.0 --port=80
Затем создайте службу, предоставляющую приложение: kubectl expose deployment mycluster --type LoadBalancer --port 80 --target-port 80
Дождитесь EXTERANL-IP
и попробуйте обратиться к вашему приложению.
Если вы хотите провести внутреннее тестирование , используйте тестовый модуль с изображением curl
для доступа к услуге:
apiVersion: v1
kind: Pod
metadata:
name: curl
namespace: default
spec:
containers:
- name: curl
image: curlimages/curl
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
И затем используйте команду:
kubectl exec -it curl -- curl -IL http://mycluster
Ответ:
HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Mon, 30 Mar 2020 09:30:07 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 Apr 2016 15:17:57 GMT
Connection: keep-alive
ETag: "571f86a5-264"
Accept-Ranges: bytes