springboot项目部署到k8s上的方法步骤

 更新时间:2023年05月05日 09:32:52   作者:越走越远的风  
本文主要介绍了springboot项目部署到k8s上的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

springboot部署到k8s步骤

  • springboot项目打包镜像部署到镜像仓库

  • 登录私有镜像仓库,拉去镜像

  • 创建deployment

  • 暴露服务访问端口

上篇文章已讲过 springboot构建docker镜像并推送到阿里云

创建secret

登录私有仓库需要创建secret,存储docker registry的认证信息

创建secret

~$ kubectl create secret docker-registry fdf-docker-secret --docker-server=registry.cn-chengdu.aliyuncs.com --docker-username=17602117026 --docker-password=用户密码
secret/fdf-docker-secret created
~$
~$
~$ kubectl get secret
NAME                TYPE                             DATA   AGE
fdf-docker-secret   kubernetes.io/dockerconfigjson   1      15s

创建好之后,后续需要挂载到pod上

创建deployment的yaml文件

快速创建一个deployment,导出yaml文件

~$ kubectl create deployment k8sdemo --image=registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0 --dry-run=client -o yaml > k8sdemo.yaml
~$ cat k8sdemo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: k8sdemo
  name: k8sdemo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: k8sdemo
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: k8sdemo
    spec:
      containers:
      - image: registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
        name: k8s-test
        resources: {}
status: {}
~$

修改k8sdemo.yaml文件

#1.修改副本数量为2 
#2.挂在secret
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: k8sdemo
  name: k8sdemo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: k8sdemo
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: k8sdemo
    spec:
      imagePullSecrets:
        - name: fdf-docker-secret
      containers:
      - image: registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
        name: k8s-test
        resources: {}
status: {}

创建deployment

~$ kubectl apply -f k8sdemo.yaml
deployment.apps/k8sdemo created
~$ kubectl get deploy
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
k8sdemo   0/2     2            0           12s
~$ kubectl get deploy
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
k8sdemo   2/2     2            2           24s
~$ kubectl get pod
NAME                       READY   STATUS    RESTARTS   AGE
k8sdemo-65d45fb49f-l4kx5   1/1     Running   0          28s
k8sdemo-65d45fb49f-pqsjw   1/1     Running   0          28s

创建service, nodePort

#port 服务端口    target-port pod端口
~$ kubectl expose deploy k8sdemo --port=9001 --target-port=9001 --type=NodePort
service/k8sdemo exposed
~$
~$ kubectl get svc k8sdemo
NAME      TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
k8sdemo   NodePort   10.96.10.79   <none>        9001:31921/TCP   12s
~$ curl http://127.0.0.1:31921/api/v1/user/name
zhangsan                                                                                                                            

可以看到serviced的ip为10.96.10.79 对外端口为 31921,安全组需开放该端口才能访问

到这里我们服务部署就算完成了,看一下所有的节点

~$ kubectl get secret,pod,svc,deploy
NAME                       TYPE                             DATA   AGE
secret/fdf-docker-secret   kubernetes.io/dockerconfigjson   1      52m
NAME                           READY   STATUS    RESTARTS   AGE
pod/k8sdemo-65d45fb49f-l4kx5   1/1     Running   0          39m
pod/k8sdemo-65d45fb49f-pqsjw   1/1     Running   0          39m
NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
service/k8sdemo      NodePort    10.96.10.79   <none>        9001:31921/TCP   5m51s
service/kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP          301d
NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/k8sdemo   2/2     2            2           39m
~$

到此这篇关于springboot项目部署到k8s上的方法步骤的文章就介绍到这了,更多相关springboot部署到k8s内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现身份证号码验证的示例代码

    java实现身份证号码验证的示例代码

    这篇文章主要为大家详细介绍了如何利用java语言实现身份证号码验证的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • 浅谈Java线程池的7大核心参数

    浅谈Java线程池的7大核心参数

    本篇文章基于正在看这篇文章的你已经具备了基本的Java并发的相关知识.如果对于Java并发编程一无所知的话,请先看看Java并发编程的一些前导基础知识,文中有非常详细的图文示例及代码,,需要的朋友可以参考下
    2021-05-05
  • JavaAgent实现http接口发布方式浅析

    JavaAgent实现http接口发布方式浅析

    这篇文章主要介绍了JavaAgent实现http接口发布方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-03-03
  • MyBatis的缓存解析

    MyBatis的缓存解析

    这篇文章主要介绍了MyBatis的缓存解析,一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会缓存,下次查询相同的数据就会从缓存中直接获取,不会从数据重新访问,前提必须是同一个SqlSession对象,并且查询的数据相同,需要的朋友可以参考下
    2023-09-09
  • java中申请不定长度数组ArrayList的方法

    java中申请不定长度数组ArrayList的方法

    今天小编就为大家分享一篇java中申请不定长度数组ArrayList的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Java 实现拦截器Interceptor的拦截功能方式

    Java 实现拦截器Interceptor的拦截功能方式

    这篇文章主要介绍了Java 实现拦截器Interceptor的拦截功能方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringBoot生成jar/war包的布局应用

    SpringBoot生成jar/war包的布局应用

    在 Spring Boot 中,"布局应用"(Application Layout)指的是打包生成的可执行 jar 或 war 文件中的内容组织结构,本文给大家介绍了SpringBoot生成jar/war包的布局应用,需要的朋友可以参考下
    2024-02-02
  • Java并发编程之CountDownLatch解读

    Java并发编程之CountDownLatch解读

    这篇文章主要介绍了Java并发编程之CountDownLatch解读,是通过一个计数器来实现的,计数器的初始值是线程的数量,countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行,需要的朋友可以参考下
    2023-12-12
  • SpringBoot 入门教程之引入数据传输层的方法

    SpringBoot 入门教程之引入数据传输层的方法

    这篇文章主要介绍了SpringBoot 入门教程之引入数据传输层的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Springboot在有锁的情况下正确使用事务的实现代码

    Springboot在有锁的情况下正确使用事务的实现代码

    这篇文章主要介绍了Springboot在有锁的情况下如何正确使用事务,今天通过一个实验给大家分析一下商品超卖问题,模拟场景分析通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12

最新评论