一提到Openshift PaaS云,必然需要先了解Pod、Container这些概念,以及创建Pod、部署应用等涉及到的Deployment、Service、Router等等概念,官方文档、网上教程都对这些专业术语进行了专业的解释,但是不进行一次Openshift部署还是无法深刻体会这些概念,本人针对近期在项目上亲自部署的感受,简单解释下这些概念,可能不是特别恰当,但是本人认为好理解。
一、Openshift PaaS相关概念
1.Pod:类似一台物理机(即一台电脑)
2.Container:类似操作系统.
3.镜像 :类似在操作系统上安装的应用
- 3.1 基础镜像:类似tomcat、was等程序运行必要的环境软件
- 3.2 程序镜像:包含基础镜像和自己的程序
4.一个Pod中可以有多个Container:即一台电脑可以装多个操作系统(操作系统可以是Linux不同版本、Windows不同版本等)
5.一个Container可以部署多个应用:类似一个操作系统可以安装不同的软件
6.多个Pod部署一个应用:即分布式部署(即一个应用部署在多台物理机服务器上)
二、部署相关概念
下面介绍的概念是发布一个PaaS应用多数用到的一些部署配置相关的概念
1.Deployment
顾名思义即部署,即告诉Openshift如何进行部署,即部署几个Container,从哪儿获取镜像、分配几个Pod、部署用到的端口是哪个等。
下面是一个部署示例,从中即可懂得Deployment如何编写
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-deployment
namespace:myfirstpaasproject #project名称
spec:
selector:
matchLabels:
app: hello
replicas: 2 #分配2个Pod
template:
metadata:
labels:
app: hello
spec:
imagePullSecrets:
- name: hello-pull #自己创建的名为hello-pull的secret,用于镜像下载的身份认证
containers:
- name: hello #容器名称,自定义
image: 'base_url/hello.1.0.1' #镜像路径
command: #部署进行时用到的指令
- java
args:
- '-Dfile.encoding=utf-8'
- '-DJAVA_FONTS=/myfolder'
- '-jar'
- '-Xms512m'
- '-Xmx2048m'
- /myfolder/hello.jar
- '--spring.profiles.active=dev'
- '--log.path=/myfolder/logs'
- '--server.port=8080'
env:
- name: TZ
value: Asia/Beijing
- name: JAVA_OPTS
value: >-
-Dfile.encoding=UTF-8 -DJAVA_FONTS=/myfolder
-Ddefault.client.encoding=UTF-8 -Dspring.profiles.active=dev
-Dlog.path=/myfolder/logs
ports: #hello程序用到的端口
- containerPort: 8080
protocol: TCP
resources: #container用到的资源,一个CPU、2G内存
limits:
cpu: '1'
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
readinessProbe:
httpGet:
path: /login
port: 8080
scheme: HTTP
volumeMounts: #将hello-pv存储挂载到/hello目录下(即通过/hello 即可访问该存储)
- name: hello-pv
mountPath: /hello
volumes: #hello-pv 对应的实际storage的名称是 hello-pvc
- name: hello-pv
persistentV

最低0.47元/天 解锁文章
824

被折叠的 条评论
为什么被折叠?



