如何用k8s部署Java项目
使用dockerFile部署jar包 推送至阿里云镜像仓库
(1)打需要部署项目的jar包
(2)创建Dockerfile文件(如下: Dockerfile文件 示例)
(3)构建镜像 docker build -t 仓库地址+版本号 . --platform linux/amd64
(4)修改镜像绑定远程仓库:docker tag 2733566c7b0a registry.cn-beijing.aliyuncs.com/agatha-dev/dev:1.0 (如图)
(5)推送镜像至远程仓库:docker push registry.cn-beijing.aliyuncs.com/agatha-dev/dev:1.0 (如图)
(6)指定配置文件并启动服务
kubectl apply -f car-deploy.yaml
Dockerfile文件 示例
1 2 3 4 5 6 7 8 9 10 | ## 基础镜像java FROM java:8 ## 作者 Oak MAINTAINER Oak ## 就是你上传的jar包的名称。给jar包起个别名 ADD project-spring_boot-1.0-SNAPSHOT.jar spring_boot.jar ## 就是在容器中以多少端口号运行 EXPOSE 8066 ## 容器启动之后执行的命令,java -jar spring_boot.jar 即启动jar ENTRYPOINT [ "java" , "-jar" , "spring_boot.jar" ] |
k8s的网络请求
k8s的常用命令
1 2 3 4 5 6 7 8 9 10 11 | kubectl get ingress -n prod kubectl get deployment -n prod kubectl get pod -n prod kubectl get service -n prod kubectl logs -f -n prod prodName-6cc4c54645-765g9 看日志 kubectl apply -f ~/Downloads/paas/007.yaml 更新配置文件 |
car.yaml 示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | apiVersion: apps/v1 kind: Deployment metadata: namespace: prod name : car-deployment labels: app: car spec: replicas: 5 selector: matchLabels: app: car template: metadata: labels: app: car spec: containers: - name : car image: registry.cn-beijing.aliyuncs.com/agatha-dev/dev:1.3 ports: - containerPort: 8066 # --- # apiVersion: v1 # kind: Service # metadata: # namespace: prod # name : car # spec: # selector: # app: car # ports: # - name : car # protocol: TCP # port: 8066 # targetPort: 8066 # --- # apiVersion: networking.k8s.io/v1 # kind: Ingress # metadata: # namespace: prod # name : ingress-car # spec: # rules: # - host: "k8s.agatha.pro" # http: # paths: # - pathType: Prefix # path: "/" # backend: # service: # name : car # port: # number: 8066 |
k8s的一些基础概念
(1)kubeadm(管理端)
(2)kubelet(服务端)
(3)kubectl(客户端)(创建和管理 Deployment(一根豆子),可以有很多Pod 容器组(一颗豆子),一个Pod可以部署1+个jar包;Service 类似ng)
负责 Kubernetes 主节点和工作节点之间通信的过程; 它管理 Pod 和机器上运行的容器,容器运行时(如 Docker)负责从仓库中提取容器镜像,解压缩容器以及运行应用程序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix