k8s 部署项目

部署项目流程

  • 容器交互流程
  • k8s部署java项目流程

容器交付流程

  • 开发到码阶段 容器化测试 编写Dockerfile文件
  • 持续集成 代码编译、打包 制作镜像 上传镜像仓库
  • 应用部署 创建pod、service、ingress
  • 运维     监控、故障排查、升级优化

k8s 部署项目流程 细节过程

  • 制作镜像
  • Dockerfile
  • 推送到镜像仓库 阿里云、网易云
  • 控制器部署镜像  deployment
  • 对外暴露端口 service、ingress
  • 运维 监控、升级

k8s集群部署项目

  • 准备java项目、 打包
  • 制作镜像
  • 查看镜像 docker images
  • 本地启动制作好的镜像 测试
  • 镜像上传到镜像服务器 (阿里云)
  • 阿里云镜像服务创建命名空间
  • 登录镜像仓库
  • 为镜像添加版本号
  • 实现推送
  • 拉取镜像
  • 控制器部署镜像 导出yml文件 执行yml文件 见注解一
  • 对外暴露端口

Dockerfile

FROM 

VOLUME /tmp
ADD 源文件路径  demo.jar(jar包自定义名称)

ENTRYPOINT ["java", "jar", "/demo.jar", "&"]

阿里云镜像

$ docker login --username=阿里云账户名 registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/java-demo1/k8s-demo:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/java-demo1/k8s-demo:[镜像版本号]

注解一

kubectl创建pod 导出yml

kubectl create deployment javademo1 --image=阿里云镜像地址   --dry-run -o yaml > javademo1.yaml
执行yml文件
kubectl apply -f javademo1.yaml

查看运行结果

kubectl get pod

对外暴露端口


kubectl expose deployment javademo1 --port=3000 --target-port=3000 --type=NodePort

查看暴露端口

kubectl get pod,svc 
或者
keubectl get svc

例:
NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/javademo1    NodePort    10.106.60.209   <none>        3000:32248/TCP   11s
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          7d13h
service/nginx        NodePort    10.109.233.39   <none>        80:30809/TCP     2d14h

成功后使用 节点ip:暴露端口对应的端口号/请求路径 访问

其他命令操作

pod操作

查询pod
kubectl get pod

删除pod
kubectl delete pod javademo1-7854d5cbc5-8bb55(pod名称)

deployment操作

查询
kubectl get deployment


 kubectl delete deployment  javademo1(deploymenty名称)

扩容

kubectl scale deployment javademo1 --replicas=3
原文地址:https://www.cnblogs.com/ccubee/p/15550187.html