0
点赞
收藏
分享

微信扫一扫

k8s+harbor部署jar包和vue项目


前置工作:
k8s 部署docker镜像需要拉取docker镜像,一般企业都是使用的局域网,所以需要在本地搭建一个docker私有仓库。

​​将jar包、vue项目打成docker镜像并推送到Harbor本地仓库​​ 前面的工作都已经完成了,下面开始使用k8s部署Java项目:

编写Deployment,Service的yaml文件

touch deployment.yaml

touch service.yaml

k8s+harbor部署jar包和vue项目_k8s

vim deployment.yaml

先建好自己的namespace 我用的mysapce

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: swagger-server
namespace: mysapce
spec:
replicas: 1
template:
metadata:
labels:
app: swagger-server
spec:
containers:
- name: swagger-server
image: 120.48.54.67:8282/k8spro/swagger:1.0.1
tty: true
ports:
- containerPort: 8013

说明:
image: 这个地址要用你的docker镜像的地址,可以去harbor仓库里面查一下。
containerPort:填写jar包的端口号。

vim service.yaml

apiVersion: v1
kind: Service
metadata:
name: jar-service
namespace: mysapce
spec:
ports:
- port: 80 # 集群端口
targetPort: 8013 #pod控制器中定义的端口(应用访问的端口)
protocol: TCP
type: NodePort
selector:
app: swagger-server

targetPort:填写你的jar内置的端口号,不然虽然pod能启动 但是找不到pod里面的服务。

执行yuml

kubectl apply -f deployment.yaml

kubectl apply -f service.yaml

查一下pod,svc

kubectl get pods -n mysapce

kubectl get svc -n mysapce

去dashboard里面看看

k8s+harbor部署jar包和vue项目_jar_02


浏览器访问一下:

k8s+harbor部署jar包和vue项目_k8s_03


访问的时候选择后面那个端口:

k8s+harbor部署jar包和vue项目_jar_04


这样就启动好了。

部署vue也是一样的步骤

deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
name: kgf-vue
namespace: mysapce
labels:
app: kgf-vue
spec:
replicas: 1
selector:
matchLabels: { app: kgf-vue }
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels: { app: kgf-vue }
spec:
containers:
- name: kgf-vue
env:
- name: kgf-vue
valueFrom:
fieldRef: { fieldPath: metadata.name }
image: 120.48.54.67:8282/k8spro/vue:1.0.1
imagePullPolicy: IfNotPresent
resources:
limits:
cpu: 1
memory: 512Mi
requests:
cpu: 0.4
memory: 256Mi

service.yaml:

#service版本
apiVersion: v1
#这个表示资源类型我们创建的是Service
kind: Service
metadata: #这个里面定义的是Service中我们创建的对象信息
#对象名称
name: kgf-vue
#元数据名称空间
namespace: mysapce
labels:
app: kgf-vue
spec: #下面定义service的详细信息
#类型为NodePort
type: NodePort
selector: #通过标签选择器去查询对应版本的pod,最后组成一个service
app: kgf-vue
ports: #指定容器需要用到的端口列表
#指定端口名称
- name: http
#服务对外的端口
port: 8080
protocol: TCP
#容器的端口
targetPort: 80

如果报错:

0/1 nodes are available: 1 Insufficient cpu.

把 deployment.yaml 里面的cup 调小一些。

总结:

当然这样虽然可以 实现k8s部署自己的项目,但是这样手动部署不是最终目的,下一步我们试试结合gitlab+Jenkins 实现自动化部署。


举报

相关推荐

0 条评论