k8s项目部署
k8s部署java项目
·
查看节点信息
kubectl get nodes
查看指定节点详细信息
kubectl describe node nodeName
查看pod信息
kubectl describe pods
查看指定pod详细信息
kubectl describe pod podName
查看pod日志
kubectl logs podName
导出相应的yaml文件
kubectl create deployment 名字--image=镜像-o yaml --dry-run=client > 文件名
例:
kubectl create deployment nginx --image=nginx -o yaml --dry-run=client > m1.yaml
导出已经部署后的yaml文件
kubectl get deploy 名字 -o=yaml > 文件名
例:
kubectl get deploy hello-minikube -o=yaml > my2.yaml
为node设置label
kubectl label node 节点名 env_role= label名
例:
kubectl label node minikube env_role=prod
获取节点的label信息
kubectl get nodes --show-labels
deployment部署web
1. 生成相关的yaml文件,例:
kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml
2. 使用yaml部署,例:
kubectl appy -f web.yaml
3. 对外发布(暴露对外端口号),例:
kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml > web1.yaml
kubectl apply -f web1.yaml
版本更新:
kubectl set image deployment pod名称 镜像=镜像:版本
例:
kubectl set image deployment nginx nginx=nginx:1.5
查看升级状态:
kubectl rollout status deployment Name
例:
kubectl rollout status deployment nginx
查看升级版本:
kubectl rollout history deployment Name
例:
kubectl rollout history deployment nginx
回滚上个版本
kubectl rollout undo deployment Name
例
kubectl rollout undo deployment nginx
回滚到指定的版本:
kubectl rollout undo deployment Name --to-revision=?
例:
kubectl rollout undo deployment nginx --to-revision=2
弹性伸缩
kubectl scale deployment Name --replicas=?
例:
kubectl scale deployment nginx --replicas=10
k8s项目部署
部署流程
- 将java代码打成jar包
- 制作镜像(Dockerfile)
- 推送镜像(推送到阿里云、网易、私有库等)
- 使用控制器部署镜像(Deployment)
- 对外暴露应用(Service、Ingress)
- 运维(监控、升级、故障排查)
实现
-
将代码打成jar包(可以使用maven的package或者gradle的build工具进行打包)
-
编写Dockerfile文件并执行
Dockerfile文件内容
//选择jdk8的镜像源 FROM openjdk:8-jdk-alpine //挂载到/tmp目录下 VOLUME /tmp //将当前目录的DockerTest-0.0.1-SNAPSHOT.jar改名为wu-docker.jar并打成镜像 ADD ./DockerTest-0.0.1-SNAPSHOT.jar wu-docker.jar //执行java -jar的命令 来运行该镜像 ENTRYPOINT [ "java","-jar","/wu-docker.jar","&"]
运行Dockerfile文件
//-t 后表示上传到docker上镜像的名字以及版本号(注意后面还有一个.) docker build -t java-docker-k8s:1.0 .
成功后会多出一个名为
java-docker-k8s
的镜像 -
推送到aliyun
- 在aliyun的容器镜像服务中创建命名空间,再创建镜像仓库。
- 根据镜像仓库中的提示上传或拉去镜像即可
-
通过k8s进行部署
- 通过deployment命令,生成镜像的yaml文件
kubectl create deployment Name --image=阿里云镜像pull的路径 --dry-run=client -o yaml > yaml文件名.yaml
- 运行该yaml文件
kubectl apply -f yaml文件名.yaml
- 通过deployment命令,生成镜像的yaml文件
-
对外暴露服务(Service)
- 创建多个副本
kubectl scale deployment NAME --replicas=副本个数
kubectl expose deployment Name --port=对外端口 --target-port=本身端口 --type=NodePort
- 查看详情
kubectl get svc
- 创建多个副本
-
。。。。。。。。。
更多推荐
已为社区贡献2条内容
所有评论(0)