Автоматизация собственной работы через Jenkins И публикация через Kubernetes через HTTPD или NGINX - PullRequest
0 голосов
/ 27 июня 2019

У меня есть некоторые файлы, которые находятся в реакции lng. Я делаю сборку из npm. Я делаю эту сборку локально. У меня есть путь сборки. Я хочу развернуть эту сборку в стручках кубернетов. как написать файл deploy.yaml? Как настроить мою корневую папку nginx или httpd, которая может публиковать мои коды? Если сначала мне нужно создать образ докера для этого файла проекта, то как?

1 Ответ

0 голосов
/ 28 июня 2019

Сначала вы должны создать Dockerfile:

Яйцо.Dockerfile:

FROM golang
WORKDIR /go/src/github.com/habibridho/simple-go
ADD . ./
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix .
EXPOSE 8888
ENTRYPOINT ./simple-go

Создайте свой образ и попробуйте запустить его.

$ docker build -t simple-go .

$ docker run -d -p 8888:8888 simple-go

Следующий шаг - передача изображения всервер.Вы можете использовать Docker Hub.Вы можете отправить изображение в хранилище и вытащить его с сервера.

- на локальном компьютере

$ docker tag simple-go habibridho/simple-go

$ docker push habibridho/simple-go

- на сервере

$ docker pull habibridho/simple-go

Следует отметить, что видимость хранилища докеров по умолчанию является общедоступной, поэтому, если ваш проект является закрытым,вам нужно изменить видимость проекта на веб-сайте Docker Hub.

Полезную информацию об этом процессе вы можете найти здесь: docker-images

Как только у нас появится изображение вНа нашем сервере мы можем запустить приложение так же, как на локальном компьютере, создав развертывание.

Ниже приведен пример развертывания.Он создает набор ReplicaSet для вызова трех модулей вашего приложения:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: your-app
  template:
    metadata:
      labels:
        app: your-app
    spec:
      containers:
      - name: your-app
        image: your-app:version
        ports:
        - containerPort: port

В этом примере:

A Развертывание с именем your-creation создано, обозначено.Поле metadata.name.

  • В Развертывание создается три реплицированных модуля, указанные в поле реплик.

  • The *Поле 1062 * selector определяет, как Deployment находит, какими модулями управлять.В этом случае вы просто выбираете метку, которая определена в шаблоне Pod (приложение: ваше приложение).

Однако возможны более сложные правила выбора, если сам шаблон Pod соответствует этому правилу.

Чтобы создать развертывание, выполните следующую команду:

$ kubectl create -f your_deployment_file_name.yaml

Более подробную информацию вы можете найти здесь: kubernetes-deployment.

...