17、Kubernetes容器交付介绍

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: 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

# 创建
[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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值