k8s+harbor部署jar包和vue项目

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

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

编写Deployment,Service的yaml文件

touch deployment.yaml
touch service.yaml

在这里插入图片描述

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里面看看

在这里插入图片描述
浏览器访问一下:
在这里插入图片描述
访问的时候选择后面那个端口:
在这里插入图片描述
这样就启动好了。

部署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 实现自动化部署。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值