如何用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文件 示例
 
 ## 基础镜像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的常用命令 

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   示例

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)负责从仓库中提取容器镜像,解压缩容器以及运行应用程序。
      

posted @ 2023-02-05 09:49  哦克Oak  阅读(2026)  评论(0编辑  收藏  举报