Kubernetes学习笔记06

第十六章、Kubernetes容器交付介绍

如何在k8s集群中部署Java项目

容器交付流程

  • 开发代码阶段
    • 编写代码
    • 编写Dockerfile【打镜像做准备】
  • 持续交付/集成
    • 代码编译打包
    • 制作镜像
    • 上传镜像仓库
  • 应用部署
    • 环境准备
    • Pod
    • Service
    • Ingress
  • 运维
    • 监控
    • 故障排查
    • 应用升级

k8s部署Java项目流程

  • 制作镜像【Dockerfile】
  • 上传到镜像仓库【Dockerhub、阿里云、网易】
  • 控制器部署镜像【Deployment】
  • 对外暴露应用【Service、Ingress】
  • 运维【监控、升级】

k8s部署Java项目

准备Java项目

第一步,准备java项目,把java进行打包【jar包或者war包】

依赖环境

在打包java项目的时候,我们首先需要两个环境

  • java环境【JDK】
  • maven环境

然后把java项目打包成jar包

mvn clean install

编写Dockerfile文件

Dockerfile 内容如下所示

FROM openjdk:8-jdk-alpine VOLUME /tmp ADD ./target/demojenkins.jar demojenkins.jar ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]

制作镜像

在我们创建好Dockerfile文件后,我们就可以制作镜像了

我们首先将我们的项目,放到我们的服务器上

然后执行下面命令打包镜像

docker build -t java-demo-01:latest .

等待一段后,即可制作完成我们的镜像

最后通过下面命令,即可查看我们的镜像了

docker images;

启动镜像

在我们制作完成镜像后,我们就可以启动镜像了

docker run -d -p 8111:8111 java-demo-01:latest -t

启动完成后,我们通过浏览器进行访问,即可看到我们的java程序

http://192.168.177.130:8111/user

推送镜像

下面我们需要将我们制作好的镜像,上传到镜像服务器中【阿里云、DockerHub】

首先我们需要到 阿里云 容器镜像服务,然后开始创建镜像仓库

然后选择本地仓库

我们点击我们刚刚创建的镜像仓库,就能看到以下的信息

登录镜像服务器

使用命令登录

docker login --username=XXXXXXX@163.com registry.cn-shenzhen.aliyuncs.com

然后输入刚刚我们开放时候的注册的密码

镜像添加版本号

下面为我们的镜像添加版本号

# 实例

docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:[镜像版本号]

# 举例

docker tag 33f11349c27d registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0

操作完成后

推送镜像

在我们添加版本号信息后,我们就可以推送我们的镜像到阿里云了

docker push registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0

操作完成后,我们在我们的阿里云镜像服务,就能看到推送上来的镜像了

控制器部署镜像

在我们推送镜像到服务器后,就可以通过控制器部署镜像了

首先我们需要根据刚刚的镜像,导出yaml

# 导出

yaml kubectl create deployment javademo1 --image=registry.cn-

shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0 --dry-run -o yaml > javademo1.yaml

导出后的 javademo1.yaml 如下所示

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: javademo1
  name: javademo1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: javademo1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: javademo1
    spec:
      containers:
      - image: registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0
        name: java-project-01
        resources: {}
status: {}

然后通过下面命令,通过yaml创建我们的deployment

# 创建

kubectl apply -f javademo1.yaml

我们还可以进行扩容,多创建几个副本

kubectl scale deployment javademo1 --replicas=3

然后我们还需要对外暴露端口【通过service 或者 Ingress】

# 对外暴露端口

kubectl expose deployment javademo1 --port=8111 --target-port=8111 --type=NodePort

# 查看对外端口号

kubectl get svc

然后通过下面的地址访问

# 对内访问

curl http://10.106.103.242:8111/user

# 对外访问

http://192.168.177.130:32190/user

相关推荐

  1. Kubernetes学习笔记01

    2024-04-30 03:54:03       23 阅读
  2. Kubernetes学习笔记-Part.04 资源规划

    2024-04-30 03:54:03       53 阅读
  3. Kubernetes学习笔记-Part.02 Docker版本

    2024-04-30 03:54:03       58 阅读
  4. Kubernetes学习笔记-Part.08 安装k8s环境

    2024-04-30 03:54:03       67 阅读
  5. 01-k8s学习笔记之认识 Kubernetes

    2024-04-30 03:54:03       56 阅读
  6. Kubernetes学习笔记6

    2024-04-30 03:54:03       39 阅读
  7. Kubernetes学习笔记11

    2024-04-30 03:54:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 03:54:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 03:54:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 03:54:03       82 阅读
  4. Python语言-面向对象

    2024-04-30 03:54:03       91 阅读

热门阅读

  1. react怎么做到点击传参

    2024-04-30 03:54:03       30 阅读
  2. pinia持久化

    2024-04-30 03:54:03       24 阅读
  3. 数据脱敏及数据库安全风险

    2024-04-30 03:54:03       31 阅读
  4. vue3 element ui plus 登录(本人空间有源码下载)

    2024-04-30 03:54:03       30 阅读
  5. 推动数字化智变发展 锐捷网络保持行业领先

    2024-04-30 03:54:03       32 阅读
  6. typora中如何使用cos存储

    2024-04-30 03:54:03       34 阅读
  7. Python wireshark抓包及分析

    2024-04-30 03:54:03       46 阅读
  8. 【MHA】MySQL高可用MHA介绍5-所有参数

    2024-04-30 03:54:03       28 阅读
  9. 持续集成和持续部署(CI/CD)

    2024-04-30 03:54:03       35 阅读
  10. 汽车轮胎打气泵方案的开发与参数简介

    2024-04-30 03:54:03       29 阅读
  11. ChatGPT 如何改变移动测试的游戏规则

    2024-04-30 03:54:03       36 阅读
  12. ansible提示 python 报错的问题及解决

    2024-04-30 03:54:03       28 阅读