流程

制作镜像

控制管理器pod

暴漏应用

对外发布应用

日志、监控

k8s部署java应用

打包的三个基础层

基础层

系统

运行层

jdk之类的基础环境

项目层

结合Java之类的项目

master安装mariadb数据库

  1. yum -y install mariadb-server
  2. systemctl start mariadb && systemctl enable mariadb
  3. #初始话配置
  4. mysql_secure_installation
  5. Enter current password for root (enter for none):
  6. 让我们输入root用户密码,初次运行直接回车。
  7. Set root password? [Y/n]
  8. 是否设置root用户密码,输入y并回车或直接回车。
  9. New password:
  10. Re-enter new password:
  11. 输入新密码,并确认密码。
  12. 其他配置
  13. Remove anonymous users? [Y/n] 是否删除匿名用户,输入y或者回车。
  14. Disallow root login remotely? [Y/n] 是否禁止root远程登录,输入y或者回车。
  15. Remove test database and access to it? [Y/n] 是否删除test数据库,输入y或者回车。
  16. Reload privilege tables now? [Y/n] 是否重新加载权限表,输入y或者回车。
  17. #登录并创建对应的库
  18. mysql -uroot -proot
  19. create database test;

配置数据库相关内容

  1. #上传 tomcat-java-demo-master.zip 测试包并解压
  2. yum -y install unzip && unzip tomcat-java-demo-master.zip
  3. #创建对应的test库并导入表
  4. mysql -uroot -proot
  5. create database test;
  6. source /usr/local/java/tomcat-java-demo-master/db/tables_ly_tomcat.sql
  7. #创建可以远程访问的权限用户
  8. grant all on test.* to 'test'@'%' identified by 'test';
  9. flush privileges;

配置jdk环境并打包项目

  1. #配置好jdk环境后安装maven
  2. yum -y install maven
  3. Ps:记得修改为阿里云源
  4. #修改jar包下的src/main/resources/application.yml的数据库连接地址
  5. url: jdbc:mysql://192.168.31.65:3306/test?characterEncoding=utf-8
  6. username: test
  7. password: test
  8. #打包java项目
  9. mvn clean package -Dmaven.test.skip=true
  10. #打包构建镜像
  11. docker build -t 13271473920/java-demo -f Dockerfile .
  12. #推送docker镜像,默认推送到github上
  13. docker search 13271473920 #默认搜索github镜像
  14. docker login #默认第一次需要输入github账号密码
  15. docker push 13271473920/java-demo #上传镜像到GitHub

部署项目用控制器调度

  1. #创建资源模板 dry-run调试模式 o生成的文件类型
  2. kubectl create deployment java-demo --image=13271473920/java-demo --dry-run -o yaml > deploy.yaml
  3. #通过yaml文件执行pod
  4. kubectl apply -f deploy.yaml
  5. #查看pod任务
  6. kubectl get pod
  7. #查看pod日志
  8. kubectl logs java-demo-5cc64657b9-759j8 #跟上get pod查询出来的name名

暴漏service对外发布

  1. #创建资源模板 port容器间访问端口 target-port容器里运行的端口 type随机生成对外访问端口
  2. kubectl expose deployment java-demo --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml
  3. #查看部署情况 根据查询到的对外端口进行访问
  4. kubectl get pod,svc
  5. Pshttp://192.168.31.66:30805/