Начало работы с Kubernetes - разверните docker compose - PullRequest
1 голос
/ 11 марта 2020

Я пытаюсь следовать инструкциям в этом руководстве: https://docs.docker.com/docker-for-windows/kubernetes/#use - docker -команды . Я выполнил следующие действия:

1) Включите Kubernetes в Docker Desktop.

2) Создайте простое приложение asp. net core 3.1 в Visual Studio 2019 и добавьте контейнер поддержка оркестровки (Docker Compose).

3) Запустите приложение в Visual Studio 2019, чтобы убедиться, что оно успешно работает в Docker.

4) Выполните следующую команду в DOS: docker-compose build kubernetesexample

5) Запустите следующую команду в DOS: docker stack deploy --compose-file docker-compose.yml mystack

6) Запустите следующую команду в DOS: kubectl get services. Вот результат:

enter image description here

Как перейти к моему приложению? Я пытался просмотреть: http://localhost: 5100 и http://localhost: 32442 .

Вот мой docker -compose.yml:

    services:
      kubernetesexample:
        environment:
          - ASPNETCORE_ENVIRONMENT=Development
        ports:
          - "45678:80"


  [1]: https://i.stack.imgur.com/FAkAZ.png

Here is the result of running: kubectl get svc kubernetesexample-published -o yaml:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2020-03-14T17:51:41Z"
  labels:
    com.docker.service.id: mystack-kubernetesexample
    com.docker.service.name: kubernetesexample
    com.docker.stack.namespace: mystack
  name: kubernetesexample-published
  namespace: default
  ownerReferences:
  - apiVersion: compose.docker.com/v1alpha3
    blockOwnerDeletion: true
    controller: true
    kind: Stack
    name: mystack
    uid: 75f037b1-661c-11ea-8b7c-025000000001
  resourceVersion: "1234"
  selfLink: /api/v1/namespaces/default/services/kubernetesexample-published
  uid: a8e6b35a-35d1-4432-82f7-108f30d068ca
spec:
  clusterIP: 10.108.180.197
  externalTrafficPolicy: Cluster
  ports:
  - name: 5100-tcp
    nodePort: 30484
    port: 5100
    protocol: TCP
    targetPort: 5100
  selector:
    com.docker.service.id: mystack-kubernetesexample
    com.docker.service.name: kubernetesexample
    com.docker.stack.namespace: mystack
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - hostname: localhost

Обратите внимание, что порт теперь изменился:

enter image description here

Обновление

Ответы [ 2 ]

1 голос
/ 11 марта 2020

Служба - абстрактный способ представить приложение, работающее на наборе модулей, в качестве сетевой службы.

Скорее используйте документацию Kubernetes. У них есть интерактивные примеры в браузере. Я вижу, вы пытались использовать LoadBalancer , это должно поддерживаться облачным провайдером или правильно настроенными средами. Все издательские услуги суммируются здесь . Попробуйте использовать NodePort, простая конфигурация будет, например ::10000 *

apiVersion: v1
kind: Service
metadata:
  name: np-kubernetesexample
  labels:
    app: kubernetesexample
spec:
  type: NodePort
  ports:
    port: 5100
    protocol: TCP
    targetPort: 5100
  selector:
    app: kubernetesexample

... из того, что я получаю из предоставленных SC и описания, пожалуйста, проверьте порт и метки. В случае успеха приложение должно быть доступно на локальном хосте: 3xxxx, 2-й порт, описанный в разделе PORTS, при вводе kubectl get services, xxxx:3xxxx/TCP.

0 голосов
/ 15 марта 2020

Кажется, что это работает, если я изменю свой docker -композицию на это:

version: '3.4'

services:
  kubernetesexample:
    image: kubernetesexample
    ports:
      - "80:80"
    build:
      context: .
      dockerfile: Dockerfile

Затем просмотрите порт 80, то есть http://localhost.

Кажется, он не работает ни на каком другом порту. Видео здесь помогло мне: https://www.docker.com/blog/docker-windows-desktop-now-kubernetes/

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