k8s的项目部署(代码片段)

大忽悠爱忽悠 大忽悠爱忽悠     2022-12-08     727

关键词:

k8s的项目部署


k8s的项目部署

开发阶段

● 编写代码。
● 测试。
● 编写Dockerfile。

持续集成

● 代码编译、打包。
● 制作镜像。
● 将镜像上传到镜像仓库。

应用部署

● 环境准备。
● 创建Pod、Service、Ingress。

运维

● 监控。
● 故障排查。
● 应用升级及优化。
● ……


k8s中部署Java项目的流程

● ① 通过Dockerfile制作镜像。
● ② 将镜像推送到镜像仓库,比如阿里云镜像仓库等。
● ③ Pod控制器部署镜像。
● ④ 创建Service或Ingress对外暴露应用。
● ⑤ 对集群进行监控、升级等。


k8s中部署Java项目

制作镜像

  1. 准备java项目,然后打包得到对应的jar包 — 这一步演示过程省略
  2. 在项目的根目录下新建Dockerfile文件:
FROM openjdk
VOLUME /tmp
COPY ./target/springboot2-1.0.jar springboot2-1.0.jar
RUN bash -c "touch /springboot2-1.0.jar"
# 声明时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080
ENTRYPOINT ["java","-jar","/springboot2-1.0.jar"]
  • 制作镜像

将整个项目通过ftp上传到k8s集群所在的服务器中(其实完全可以只上传jar包和Dockerfile文件)。


进入springboot2目录,然后使用docker build构建镜像:

# springboot是镜像的名称
docker build -t springboot2 .

推送镜像

阿里云创建命名空间:


阿里云创建镜像仓库:



登录阿里云Docker Registry:

sudo docker login --username=阿里云账号 registry.cn-hangzhou.aliyuncs.com

查看上传的Docker镜像的id:

docker images


给镜像打tag:

sudo docker tag bc56e4a83ff7 registry.cn-hangzhou.aliyuncs.com/k8s-test-123/springboot2:latest


推送镜像:

sudo docker push registry.cn-hangzhou.aliyuncs.com/k8s-test-123/springboot2:latest

部署镜像暴露应用

创建deployment.yaml文件,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: springboot2
  name: springboot2
spec:
  replicas: 3
  selector:
    matchLabels:
      app: springboot2
  template:
    metadata:
      labels:
        app: springboot2
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/k8s-test-123/springboot2:latest
        name: springboot2

创建Deployment:

kubectl create -f deployment.yaml

查看Deployment和Pod:

kubectl get deploy,pod


创建service.yaml文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: springboot2
  name: svc
spec:
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 8080
    nodePort: 30091
  selector:
    app: springboot2
  type: NodePort

创建Service:

kubectl create -f service.yaml

查看Service:

kubectl get service

手把手带你玩转k8s-一键部署vue项目(代码片段)

...统部署方式与k8s部署区别在没有使用k8s之前的前后端分离项目部署,一般是依托于宿主机上的nginx。前端静态资源走nginx,后端接口会使用nginx做代理。而此时,nginx是提前安装的,所以一键脚本并不会考虑nginx的安装与运行,只会... 查看详情

微服务从代码到k8s部署应有尽有大结局(k8s部署)(代码片段)

...部署、从日志到监控等各个方面的微服务完整实践。整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中间件,所用到的技术栈基本是go-zero项目组的自研组件,基本是go-zero全家桶了。实战项目... 查看详情

k8s-基于kubeasz项目二进制部署k8s集群(代码片段)

注意事项注意1:请确保各节点时区设置一致、时间同步。如果你的环境没有提供NTP时间同步,推荐集成安装chronyntpdatetime1.aliyun.com&&hwclock-w注意2:在公有云上创建多主集群,请结合阅读在公有云上部署kubeasz注意3:建议操... 查看详情

k8s-基于kubeasz项目二进制部署k8s集群(代码片段)

注意事项注意1:请确保各节点时区设置一致、时间同步。如果你的环境没有提供NTP时间同步,推荐集成安装chronyntpdatetime1.aliyun.com&&hwclock-w注意2:在公有云上创建多主集群,请结合阅读在公有云上部署kubeasz注意3:建议操... 查看详情

前端走进云原生,k8s部署助力项目上云(代码片段)

...云化战略成功的基石,而不是障碍。二、k8s部署助力项目上云在完成整体代码的开发后, 查看详情

前端走进云原生,k8s部署助力项目上云(代码片段)

...云化战略成功的基石,而不是障碍。二、k8s部署助力项目上云在完成整体代码的开发后, 查看详情

k8s部署springboot项目(一篇够用)(代码片段)

点击关注公众号,实用技术文章及时了解现在比较多的互联网公司都在尝试将微服务迁到云上,这样的能够通过一些成熟的云容器管理平台更为方便地管理微服务集群,从而提高微服务的稳定性,同时也能较好地... 查看详情

k8s部署springboot项目(代码片段)

...0c;接下来需要验证,本文选择通过一个简单的springboot项目来验证。springboot项目构建springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库镜像构建首先新建文件dockerfileFROMopenjdk:8-jdk-alpineMAINTAINERcayden<cu... 查看详情

k8s部署springboot项目(代码片段)

...0c;接下来需要验证,本文选择通过一个简单的springboot项目来验证。springboot项目构建springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库镜像构建首先新建文件dockerfileFROMopenjdk:8-jdk-alpineMAINTAINERcayden<cu... 查看详情

k8s部署authelia(代码片段)

Authelia项目说明Authelia是一个开源的认证系统,目前支持双因素认证和单点登陆SSO认证,SSO登陆是有Web界面支持的。它可以很好的与反向代理进行集成,比如nginx,Traefik,HAProxy等,对于通过这些反向代理的服务,如果没有通过认... 查看详情

使用jenkins实现重构项目并部署项目到阿里k8s环境运行(代码片段)

第一步比如我有一个项目A,并且jenkins里配置的构建分支名称为-->branchA所以在构建前,需要将最新的master分支merge到branchA分支,保证gctest拥有全部最新的代码变更.第二步以这个A项目为例,进入到Jenkins主页面点击我们的namespace这个... 查看详情

微服务从代码到k8s部署应有尽有系列全集(代码片段)

...部署、从日志到监控等各个方面的微服务完整实践。整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中间件,所用到的技术栈基本是go-zero项目组的自研组件,基本是go-zero全家桶了。实战项目... 查看详情

持续集成之应用k8s自动部署(代码片段)

...次我们提到了docker容器化及自动化部署,这仅仅适合个人项目或者开发环境部署,如果要部署到生产环境,必然就需要考虑很多因素,比如访问量大了如何调整部署,如何更好的应对大并发的情况,如何不停机更新应用,如果想... 查看详情

k8s高可用版本部署(代码片段)

...能实现容器的资源隔离k8s的namespace:是基于名称实现项目容器的隔离,叫命 查看详情

harbor单点仓库部署(代码片段)

...署harbor作为k8s镜像仓库部署k8s私有镜像仓库harbor把demo小项目需要的镜像上传到harbor上修改demo项目的资源配置清单,镜像地址修改为harbord的地址前面讲k8s集群部署完成如果将Django项目部署到k8s中,需要镜像,将Django项目打包成镜... 查看详情

k8s快速入门:从部署到实战(代码片段)

k8s快速入门介绍容器化部署随着Docker技术的流行,对项目的容器化部署方式越来越流行,容器化部署的优点如下:可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等运行应用程序所需要的资源都被容器包... 查看详情

前端走进云原生,k8s部署助力项目上云(代码片段)

...云化战略成功的基石,而不是障碍。二、k8s部署助力项目上云在完成整体代码的开发后,我们还需要考虑部署问题。这个时候k8s就有了很大的发挥空间,使用Docker接入整个开发、生产、打包流程,保证各运行环境... 查看详情

云原生kubernetesk8s集群部署springboot项目(代码片段)

...实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是:部署SpringBoot项目到阿里云服务器 ;基于容器打包,推送私有镜像仓库;采用K8S集群部署,对外暴露服务,pod副本扩 查看详情