рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдРрд╕рд╛ рд╣реИ? рд╣рдо fabric8-maven-plugin рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЪрд▓рддреЗ рд╣реИрдВ: рдмрд┐рд▓реНрдбрд┐рдВрдЧ, OpenShift рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рди рдХрд░рддреЗ рд╣реБрдПред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛, рддреЛ рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рддрдм рдореИрдВ рдУрдкрдирд╢реАрдлреНрдЯ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЧрдпрд╛ред- рдореИрдВ рдЕрдкрдиреЗ рдЯреВрд▓ (рдорд╛рд╡реЗрди, рдЧреНрд░реЗрдбрд▓, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рд╕реНрд╡рдпрдВ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реВрдВред
- рдореИрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
- Openshift рдореЗрдВ рдмрд┐рд▓реНрдб рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИ, рдЕрд░реНрдерд╛рдд рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ, рдлрд▓реА рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИрдВред
- рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реА рдмрд╛рд╣рд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ
рдмреЗрд╢рдХ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕реНрд╡рдпрдВ рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреА рдЙрдкрд▓рдмреНрдз рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдмрд╣реБрддрд╛рдпрдд рд╕реЗ рд╣реИрдВредрдФрд░ рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЬрд╛рд╡рд╛ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреА рддреИрдпрд╛рд░реА рд╣реИ, рдлрд┐рд░ рдореИрдВ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИDockerfile
FROM openjdk
MAINTAINER Rylkov Alexander <arylkov@.>
COPY demo.springboot.mvn-0.0.1-SNAPSHOT.jar /deployments/app.jar
ENV JAVA_OPTS="$JAVA_OPTS -Xms500m -Xmx1024m"
EXPOSE 8080
EXPOSE 5005
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /deployments/app.jar" ]
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА: рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рдбреЙрдХрдлрд╛рдЗрд▓ред
рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕рд╢рд░реНрдд рд╣реИ, рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдЫрд╡рд┐ рдореЗрдВ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЕрдм, рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ, рдмреЗрд╕рд┐рдХ рдЬрд╛рд╡рд╛ рдЗрдореЗрдЬ рдФрд░ рдореЗрд░реЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджреЛ рдкреЛрд░реНрдЯ рдЦреБрд▓реЗ рд╣реИрдВ, рдЖрджрд┐ред рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдФрд░ рдбреЙрдХрд┐рдВрдЧ рдЗрдореЗрдЬ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк / рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИредрдЕрдЧрд▓рд╛, рдореИрдВ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдУрдкрдирд╢рд┐рдлреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдСрдкрд░реЗрд╢рди рдПрдХ рдмрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ, рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рд╕рдВрднрд╡ рдЪреАрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рддреАрди рд╕рдмрд╕реЗ рдЬрд░реВрд░реА рд╡рд┐рдиреНрдпрд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ- ImageStream
- Buildconfig
- DeploymentConfig
рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд╛рд╡рд╛-рдРрдк-рдирдореВрдирд╛kind: Template
apiVersion: v1
metadata:
labels:
app: java-app-sample
name: java-app-sample
annotations:
description: >-
This example shows how to create a simple Java application in openshift
tags: java
parameters:
- name: APP_NAME
description: application name
value: app-sample
required: true
objects:
- kind: ImageStream
apiVersion: v1
metadata:
name: "${APP_NAME}"
spec:
tags:
- from:
kind: DockerImage
name: 172.30.1.1:5000/myproject/${APP_NAME}:latest
name: latest
- kind: BuildConfig
apiVersion: v1
metadata:
name: "${APP_NAME}"
labels:
name: "${APP_NAME}"
spec:
source:
binary: {}
type: Binary
strategy:
type: Docker
output:
to:
kind: DockerImage
name: 172.30.1.1:5000/myproject/${APP_NAME}:latest
postCommit: {}
resources: {}
- kind: DeploymentConfig
apiVersion: v1
metadata:
name: "${APP_NAME}"
spec:
strategy:
type: Rolling
rollingParams:
updatePeriodSeconds: 1
intervalSeconds: 1
timeoutSeconds: 120
resources: {}
replicas: 1
selector:
app: "${APP_NAME}"
template:
metadata:
labels:
app: "${APP_NAME}"
spec:
containers:
- name: "${APP_NAME}"
image: 172.30.1.1:5000/myproject/${APP_NAME}:latest
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 5005
protocol: TCP
env:
- name: TZ
value: Europe/Moscow
resources:
limits:
cpu: '0.5'
memory: 1000Mi
requests:
cpu: '0.2'
memory: 500Mi
imagePullPolicy: Always
restartPolicy: Always
dnsPolicy: ClusterFirst
triggers:
- type: ConfigChange
imageChangeParams:
automatic: true
containerNames:
- "${APP_NAME}"
from:
kind: ImageStreamTag
name: 172.30.1.1:5000/myproject/${APP_NAME}:latest
- type: ImageChange
status: {}
рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ, рдХреБрдЫ рдХрдВрдЯреЗрдирд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕рд╛рдзрди / рд╕реАрдорд╛рдПрдВ, рдЯреАрдмреА рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░, рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╛рдо (APP_NAME)ред рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛ рдкрддрд╛ рдорд┐рдиреАрд╢рдлрд╝реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ (рдореИрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ 172.30.1.1/10000/myproject/) рдФрд░ рдЕрдиреНрдпредрд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣рд╛рдБ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИред - kind: BuildConfig
spec:
source:
binary: {}
type: Binary
strategy:
type: Docker
BuildConfig рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдлрд╝рд╛рдЗрд▓ (s) рд╣реЛрдЧрд╛, рдФрд░ docker рдХреА рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - Dockerfile (рдкреНрд░рдХрд╛рд░: Docker)OpenShift рдореЗрдВ рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВред oc create -f template.yaml
рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рд╡реЗрдм тАЛтАЛUI рдХрдВрд╕реЛрд▓ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдирд╣реАрдВ)ред
рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдирд╛рдо рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдирд╣реАрдВ)oc new-app java-app-sample -p APP_NAME=app-sample
рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╛рдо рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
рдореЗрд░реЗ рддреАрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдП рдЧрдП рд╣реИрдВредрд╣рдо рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрд╡реЗрджрди рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред>oc start-build app-sample --from-dir . --follow
рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд╣рд╛рдВ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдФрд░ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╕ --from-dir рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдкреВрд░реНрдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ OpenShift рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ docker рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЫрд╡рд┐ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рд╕реЗред
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдУрдкрдирд╢рд┐рдлреНрдЯ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреА рдФрд░ рдЕрдВрдд рдореЗрдВ рдЫрд╡рд┐ рдХреЛ рдбреЙрдХрдЯрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд░рдЦрд╛редрдЕрдиреБрдкреНрд░рдпреЛрдЧ OpenShift рд╡реЗрдм рдХрдВрд╕реЛрд▓
рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рд╣реБрдЖ ред рд▓реЙрдЧ рдореЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдкреИрд░рд╛рдореАрдЯрд░
, рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдмрд┐рдирд╛, рдЕрдзрд┐рдХрддрдо рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдкрд╕рдВрдж рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ OpenShift рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗредрд╕рд╛рдордЧреНрд░реАOpenShift рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП Minishift рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ , рдореИрдВ Minishift рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛