Разверните WAR в Tomcat в Куберне - PullRequest
0 голосов
/ 24 января 2019

Мне нужно создать задание Multibranch Jenkins для развертывания файла .war в Tomcat, который должен работать в Kubernetes.В основном мне нужно следующее:

  1. Способ установки Tomcat на платформе Kubernetes.
  2. Разверните мой военный файл на этом недавно установленном Tomcat.

Мне нужно использовать Dockerfile, чтобы это произошло.

PS: Я оченьновичок в Kubernetes и Docker, а также нужны базовые детали.Я пытался найти учебники, но не смог найти удовлетворительную статью.

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 24 января 2019

Docker part

Вы можете использовать официальное изображение tomcat docker

В вашем Dockerfile просто скопируйте ваш военный файл в каталог /usr/local/tomcat/webapps/:

FROM tomcat

COPY app.war /usr/local/tomcat/webapps/

Постройте его:

docker build --no-cache -t <REGISTRY>/<IMAGE>:<TAG> .

Как только ваш образ будет создан, поместите его в реестр Docker по вашему выбору.

docker push <REGISTRY>/<IMAGE>:<TAG>

Kubernetes part

1) Вот простое kubernetes Deployment для вашего образа tomcat

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-deployment
  labels:
    app: tomcat
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tomcat
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: <REGISTRY>/<IMAGE>:<TAG>
        ports:
        - containerPort: 8080

Это определение развертывания создаст модуль на основе вашегоизображение кота.

Поместите его в файл yml и выполните kubectl create -f yourfile.yml, чтобы создать его.

2) Создать Сервис :

kind: Service
apiVersion: v1
metadata:
  name: tomcat-service
spec:
  selector:
    app: tomcat
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080

Вы можетеТеперь получите доступ к вашему модулю внутри кластера с помощью http://tomcat -service.your-namespace / app (потому что ваша война называется app.war)

3) Если у вас Ingressконтроллер , вы можете создать Ресурс Ingress для предоставления приложения за пределами кластера:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tomcat-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /app
        backend:
          serviceName: tomcat-service
          servicePort: 80

Теперь получить доступ к приложению с помощью http://ingress -controller-ip /приложение

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