文章目录

  • k8s部署Java项目流程
    • 准备Java项目
    • 依赖环境
    • 编写Dockerfile文件
    • 制作镜像
    • 启动镜像
    • 推送镜像
    • 控制器部署镜像

k8s部署Java项目流程

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

准备Java项目

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

依赖环境

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

[root@localhost ~]$ yum -y install java-1.8*
[root@localhost ~]$ yum -y install  maven

编写Dockerfile文件

Dockerfile 内容如下所示

[root@localhost ~]$ mkdir javaproject && cd javaproject
[root@localhost ~]$ cat > Dockerfile << EOF
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD ./target/demojenkins.jar demojenkins.jar
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]
EOF

制作镜像

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

我们首先将我们的项目,放到我们的服务器上
https://wws.lanzous.com/iJXfBkx0bed
密码:cbu0

#解压出来,上传到服务器
[root@localhost ~]$ cd /root/javaproject
[root@localhost ~]$ systemctl start docker[root@localhost ~]$ docker build -t java-demo-01:latest .

查看镜像

[root@localhost ~]$ docker images

启动镜像

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

[root@localhost ~]$ docker run -d -p 8111:8111 java-demo-01:latest -t

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

http://192.168.88.13:8111/user

推送镜像

将制作好的镜像,上传到镜像服务器中【阿里云、DockerHub】

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

选择本地仓库


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


登录镜像服务器
使用命令登录

[root@localhost ~]$ docker login --username=XXXXXXX@163.com registry.cn-shenzhen.aliyuncs.com

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

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

# 实例
docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:[镜像版本号]# 举例
[root@localhost ~]$ docker tag 33f11349c27d registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0

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

[root@localhost ~]$ docker push registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0

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

控制器部署镜像

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

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

出yaml
[root@localhost ~]$ 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: nulllabels:app: javademo1name: javademo1
spec:replicas: 1selector:matchLabels:app: javademo1strategy: {}template:metadata:creationTimestamp: nulllabels:app: javademo1spec:containers:- image: registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0name: java-project-01resources: {}
status: {}

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

# 创建
[root@localhost ~]$ kubectl apply -f javademo1.yaml
# 查看 pods
[root@localhost ~]$ kubectl get pods

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

# 对外暴露端口
[root@localhost ~]$ kubectl expose deployment javademo1 --port=8111  --target-port=8111 --type=NodePort
# 查看对外端口号
[root@localhost ~]$ kubectl get svc

17、Kubernetes容器交付介绍相关推荐

  1. Serverless Kubernetes 容器服务介绍

    作者 | 张维 阿里巴巴高级技术专家 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹性.最优成本 ...

  2. 一文讲透 Serverless Kubernetes 容器服务

    作者 | 张维(贤维)  阿里云函数计算开发工程师 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致 ...

  3. 获取Kubernetes容器上下文环境

    关注公众号 风色年代(itfantasycc) 300G微服务资料等你拿! Kubernetes容器上下文环境 下面我们将主要介绍运行在Kubernetes集群中的容器所能够感知到的上下文环境,以及容 ...

  4. 容器技术介绍之docker核心技术概述

    容器简单来说是一种沙盒技术,将应用"装"进沙盒中,像集装箱一样,把应用封装起来,使得应用之间不会相互干扰,而放进沙盒中的应用也方便"搬家".本文基于docker ...

  5. 直播 | 平安证券Kubernetes容器集群的DevOps实践

    分享时间:5月28日 20:30 分享主题:平安证券Kubernetes容器集群的DevOps实践 分享人介绍: 陈刚,平安证券运维研发工程师,负责经纪业务IT应用的持续交付平台的设计和开发. 分享摘 ...

  6. Tomcat容器入门介绍

    Tomcat容器入门介绍 Tomcat环境配置 PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了. 1.配置JDK 在Windows10下,找到环境变量 在环境变量中添加JDK主目录 ...

  7. Kubernetes容器云的互联网企业实践

    内容来源:2017 年 11 月 25 日,当当网数字业务事业部技术总监李志伟在"Kubernetes Meetup | 北京站"进行<Kubernetes容器云的互联网企业 ...

  8. Kubernetes容器上下文环境

    目录贴:Kubernetes学习系列 下面我们将主要介绍运行在Kubernetes集群中的容器所能够感知到的上下文环境,以及容器是如何获知这些信息的. 首先,Kubernetes提供了一个能够让容器感 ...

  9. 使用Helm将ASP.NET Core应用程序部署到Kubernetes容器集群

    在<容器化单页面应用中RESTful API的访问>以及<容器化单页面应用中Nginx反向代理与Kubernetes部署>两篇文章中,我介绍了一套容器化ASP.NET Core ...

最新文章

  1. swift_002(Swift的String的基本使用)
  2. 序列化中的[NonSerialized]字段 -转
  3. C#综合揭秘——细说多线程(上)
  4. 提升语义分割性能的几种方法
  5. JAVA的rotate怎么用,java如何利用rotate旋转图片_如何在Java中旋转图形
  6. UWP 实现分享功能
  7. 《不要做浮躁的嵌入式工程师》观后感
  8. 计算机组成原理——指令格式设计
  9. 网易云音乐获取音频链接(爬虫)破解params参数
  10. Nature Neuroscience(一)
  11. 图(深度优先遍历、广度优先遍历)
  12. sass(css) 分层构架
  13. 利用python如何刷访问量
  14. 计算机桌面上的微信图标不显示不出来的,电脑微信图标任务栏不见了怎么办
  15. Android 11.0 12.0SystemUI修改状态栏电池图标样式为横屏显示
  16. PIKA trouble02 -- (error) ERR Syntax error, try CLIENT (LIST [order by [addr|idle]| KILL ip:port)
  17. z77主板升级nvme,迁移系统,蓝屏解决方法
  18. vulnhub-Chakravyuh打靶过程
  19. 微信公众号自定义菜单CLICK返回的是大写
  20. 大物复习整理(自用)

热门文章

  1. R语言ggplot2可视化:拟合二次曲线(quadratic curve)并使用ggplot2进行可视化、可视化两个响应变量和一个预测变量的二次曲线
  2. R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献
  3. ValueError: The data property of a figure may only be assigned a list or tuple that contains a .....
  4. 熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的?
  5. Windows下查看已经安装的GPU的情况
  6. CBS多机器人路径规划
  7. Benchmarking of long-read correction methods长期校正方法的基准测试
  8. 第三代基因测序技术革新 云计算的应用
  9. linux history(命令历史)
  10. HTML里面设置文本倒影,文字倒影怎么做