Kubernetes-javaWeb应用编排

mysql服务配置
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-mysql
spec:
  replicas: 1
  template:
    metadata:
      name: my-mysql
      labels:
        app: my-mysql
    spec:
      containers:
      - image: mysql:5.6
        name: custommysql
        env:
         - name: MYSQL_ROOT_PASSWORD
           value: "12345678"
---
apiVersion: v1
kind: Service
metadata:
  name: my-mysql
spec:
  type: NodePort
  selector:
    app: my-mysql
  ports:
  - port: 3307
    targetPort: 3306
    nodePort: 30125
redis服务配置
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-redis
spec:
  replicas: 1
  template:
    metadata:
      name: my-redis
      labels:
        app: my-redis
    spec:
      containers:
      - image: redis:4.0
        name: redis4.0
        ports:
        - containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
  name: my-redis
spec:
  type: my-redis
  selector:
    app: my-redis
  ports:
  - port: 6379
    targetPort: 6379
    nodePort: 6379

分别构建 war 、tomcat镜像,将其组合到同一个 pod 中,将 war容器的 war 文件通过 pod 的数据卷 共享到 tomcat 容器中。

构建war镜像

vim Dokcerfile

FROM  centos
MAINTAINER niugang
ADD weeklyreport.war /
使用 configmaps 共享配置文件

kubectl create configmap weeklyreport-conifgmapfiles --from-file=/home/xdja/conf/weeklyreport/

查看config信息

kubectl create configmap weeklyreport-conifgmapfiles --from-file=/home/xdja/conf/weeklyreport/

kubectl get configmaps weeklyreport-conifgmapfiles -o yaml

编写服务的配置文件
# ------------------- weeklyreport Deployment ------------------- #
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: weeklyreport-war
  name: weeklyreport-war
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: weeklyreport-war
  template:
    metadata:
      labels:
        app: weeklyreport-war
    spec:
      initContainers:
      - name: weeklyreportwar
        image: weeklyreport:1.0
        imagePullPolicy: IfNotPresent
        command: ["cp","/weeklyreport.war","/app"]
        volumeMounts:
          - mountPath: /app
            name: weeklyreport-vol-webapps
      containers:
      - name: weeklyreporttomcat
        image: tomcat:7.0.96
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
        volumeMounts:
        - mountPath: /usr/local/tomcat/webapps
          name: weeklyreport-vol-webapps
        - name: weeklyreport-config
          mountPath: /home/xdja/conf/weeklyreport/
        - name: weeklyreport-log
          mountPath: /home/logs/weeklyreport/
        - name: weeklyreport-tomcat-log
          mountPath: /usr/local/tomcat/logs
      volumes:
      - name: weeklyreport-vol-webapps
        emptyDir: {}
      - name: weeklyreport-config
        configMap:
          name: weeklyreport-conifgmapfiles
          items:
          - key: application.properties
            path: application.properties
          - key: logback.xml
            path: logback.xml
          - key: month_4.xlsx
            path: month_4.xlsx
          - key: month_5.xlsx
            path: month_5.xlsx
          - key: redis.properties
            path: redis.properties
          - key: week_template.xlsx
            path: week_template.xlsx
      - name: weeklyreport-log
        hostPath:
          path: /home/logs/weeklyreport
      - name: weeklyreport-tomcat-log
        hostPath:
          path: /home/logs/weeklyreport-tomcat/
# -------------------weeklyreport Service ------------------- #
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: weeklyreport-war
  name: weeklyreport-war
spec:
  type: NodePort
  ports:
    - port: 8081
      targetPort: 8080
      nodePort: 30036
  selector:
    app: weeklyreport-war

如果使用自定义的命名空间

如果不是默认命名空间,default,自定义命名空间的,在执行命名的时候记得添加–namespace

创建命名空间

kubectl create namespace weeklyreport-war

创建configmap

kubectl create configmap weeklyreport-conifgmapfiles --from-file=/home/xdja/conf/weeklyreport/ --namespace=weeklyreport-war

查看config信息

kubectl create configmap weeklyreport-conifgmapfiles --from-file=/home/xdja/conf/weeklyreport/ --namespace=weeklyreport-war

kubectl get configmaps weeklyreport-conifgmapfiles --namespace=weeklyreport-war -o yaml

创建deployment

kubectl apply -f weeklyreport-war.yaml

获取创建的pod

kubectl get pods --namespace=weeklyreport-war

查看具体信息

kubectl describe pods podName

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

后续优化

mysql redis需要改为有状态的服务,或者是将存储中间件全部放到物理机

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值