k8s部署java类型的项目
K8s部署java类项目
注意:部署方式有很多种,可以是挂载pvc实现代码的随意获取,可以是利用dockerfile制作镜像的方式进行。该文档采用Dockerfile进行部署。
制作镜像:利用基础镜像制作一个新的镜像随后通过docker打包出来导入到ctr的k8s.io让k8s能管理到改镜像
Vim Dockerfile
FROM centos:7.8
MAINTAINER jx
ENV HOME=/usr/local
RUN cd $HOME && mkdir test
COPY ./1.tar.gz $HOME/test
RUN cd $HOME/test && tar -xf 1.tar.gz
RUN cd $HOME/test
EXPOSE 10002
ENTRYPOINT $HOME/test/jre1.8.0_401/bin/java -jar /usr/local/test/test-1.0-SNAPSHOT.jar
导入的镜像需要导入到所有的node节点
启动容器
生成deployment,生成的配置一定要检查下调用的image有时候导入的镜像会自动修改名字,导致启动是找不到镜像;
kubectl create deployment java-hello --image=centos7.8_java_2:1.8.0 --dry-run -o yaml >java_deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: java-hello
name: java-hello
spec:
replicas: 1
selector:
matchLabels:
app: java-hello
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: java-hello
spec:
containers:
- image: docker.io/library/centos7.8_java_2:1.8.0
name: centos7-8-java-2-prgl8
resources: {}
status: {}
~
Kubectl apply -f java_deploy.yaml
放出服务
kubectl expose deployment java-service --port=10002 --target-port=10002 --type=NodePort -o yaml --dry-run > svc.yaml
Vim service.yaml
apiVersion: v1
kind: Service
metadata:
name: java-service
spec:
selector:
app: java-hello
ports:
- name: java-hello
port: 10002
targetPort: 10002
nodePort: 30002
type: NodePort
~
Kubectl apply -f service.yaml
验证服务
成功!!!!!!