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


浙公网安备 33010602011771号