• k8s部署springboot服务


    1. 准备工作依赖2款软件:
    2. centos7安装Docker version 20.10.18和kubectl Version: v4.5.7
    3. docker -v 和 kubectl version --client 查看版本
    4. kubectl常用命令
    5. 1 验证kubectl 连接性
    6. kubectl cluster-info
    7. 2 查看指定命名空间pods名字
    8. kubectl -n rz-dt get pods
    9. 3 根据pods名字查看pod日志
    10. kubectl -n rz-dt logs --tail=20 nginx-85f7fc95c4-5rngk
    11. 4 查看应用被映射到节点哪个端口
    12. kubectl -n rz-dt get services
    13. 5 删除Deployment|StatefulSet|Pod|Service
    14. kubectl -n rz-dt delete Deployment springboot-k8s
    15. 本实例使用阿里云k8s和镜像仓库
    16. <一> 新建文件目录
    17. /usr/local/java/k8s-springboot-demo
    18. 上传本地windows项目文件列表到centos如下:
    19. 1 /usr/local/java/k8s-springboot-demo/target/k8s-springboot-demo.jar
    20. 2 Dockerfile
    21. 3 k8s-springboot-demo.yaml
    22. <二> 构建镜像
    23. 1 根据Dockerfile制作镜像: docker build -f /usr/local/java/k8s-springboot-demo/Dockerfile -t k8s-springboot-demo/k8s-springboot-demo:2022-11-25-12-07 .
    24. 2 指定镜像名称和tag :docker build -t k8s-springboot-demo/k8s-springboot-demo:2022-11-25-12-07 .
    25. 3 登录镜像仓库 :docker login --username=aliyun0398513152 rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com
    26. 4 制作镜像重命名镜像
    27. docker images 查看b66d536c80a9
    28. docker tag b66d536c80a9 rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:2022-11-25-12-07
    29. 5 上传镜像
    30. docker push rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:2022-11-25-12-07
    31. Dockerfile文件内容:
    32. #基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8
    33. FROM openjdk:8
    34. #暴露端口
    35. EXPOSE 8089
    36. #容器中创建目录
    37. RUN mkdir -p /usr/local/cenobitor
    38. #编译后的jar包copy到容器中创建到目录内
    39. COPY target/k8s-springboot-demo.jar /usr/local/cenobitor/k8s-springboot-demo.jar
    40. #指定容器启动时要执行的命令
    41. ENTRYPOINT ["java","-jar","/usr/local/cenobitor/k8s-springboot-demo.jar"]
    42. <三> 发布
    43. 3 部署命令
    44. kubectl apply -f k8s-springboot-demo.yaml
    45. k8s-springboot-demo.yaml 文件内容如下:
    46. apiVersion: v1
    47. kind: Service
    48. metadata:
    49. name: k8s-springboot-demo
    50. namespace: rz-dt
    51. labels:
    52. app: k8s-springboot-demo
    53. spec:
    54. type: NodePort
    55. ports:
    56. - port: 8089
    57. nodePort: 30091 #service对外开放端口
    58. selector:
    59. app: k8s-springboot-demo
    60. ---
    61. apiVersion: apps/v1
    62. kind: Deployment #对象类型
    63. metadata:
    64. name: k8s-springboot-demo #名称
    65. namespace: rz-dt
    66. labels:
    67. app: k8s-springboot-demo #标注
    68. spec:
    69. replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
    70. selector:
    71. matchLabels:
    72. app: k8s-springboot-demo
    73. template:
    74. metadata:
    75. labels:
    76. app: k8s-springboot-demo
    77. spec:
    78. containers: #docker容器的配置
    79. - name: k8s-springboot-demo
    80. image: rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:2022-11-25-12-07 # pull镜像的地址 ip:prot/dir/images:tag
    81. imagePullPolicy: IfNotPresent #pull镜像时机,
    82. ports:
    83. - containerPort: 8089 #容器对外开放端口,需与springboot配置文件一致
    84. #从私有仓库拉取镜像凭证
    85. imagePullSecrets:
    86. - name: rz-dt-miyue
    87. pom.xml文件内容如下:
    88. "1.0" encoding="UTF-8"?>
    89. "http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    90. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    91. 4.0.0
    92. org.springframework.boot
    93. spring-boot-starter-parent
    94. 2.7.4
    95. com.example.demo
    96. k8s-springboot-demo
    97. 0.0.1-SNAPSHOT
    98. k8s-springboot-demo
    99. k8s-springboot-demo for Spring Boot
    100. 1.8
    101. org.springframework.boot
    102. spring-boot-starter-thymeleaf
    103. org.springframework.boot
    104. spring-boot-starter-web
    105. org.springframework.boot
    106. spring-boot-starter-test
    107. test
    108. org.projectlombok
    109. lombok
    110. 1.18.22
    111. k8s-springboot-demo
    112. org.springframework.boot
    113. spring-boot-maven-plugin
    114. org.projectlombok
    115. lombok
    116. com.spotify
    117. dockerfile-maven-plugin
    118. 1.4.10
    119. default
    120. build
    121. push
    122. Dockerfile
    123. cenobitor/${project.build.finalName}
    124. ${project.version}
    125. ${project.build.finalName}.jar
    126. public
    127. aliyun nexus
    128. https://maven.aliyun.com/repository/public
    129. true
    130. public
    131. aliyun nexus
    132. https://maven.aliyun.com/repository/public
    133. true
    134. false

     项目源码下载:

    k8s发布springboot项目服务-Java文档类资源-CSDN下载

    k8s发布springboot项目服务-Java文档类资源-CSDN下载

     k8s发布springboot项目服务-Java文档类资源-CSDN下载

  • 相关阅读:
    Java随谈(六)我们真的理解 Java 里的整型吗?
    注意 ! !|95% 的应用程序中发现错误配置和漏洞
    学习笔记2--自动驾驶汽车关键技术
    前端开发常用技术工具网址导航汇总
    《RAPL: A Relation-Aware Prototype Learning Approach for Few-Shot Document-Level Relation Extraction》阅读笔记
    HCNP Routing&Switching之IP安全
    解决jsonp跨域中的安全漏洞(包含meta解释)
    Tabby--一个终端连接工具
    HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(三)
    五、Java控制流程
  • 原文地址:https://blog.csdn.net/xiaogg3678/article/details/128036178