最近任务是把之前运行在docker里的自己写的java镜像部署到k8
s中,踩了一些坑,记录如下:
1.在写yaml文件时指定非shell命令而是一些命令行的时候要加上bash -c否则会报错:exec:“bash”:executable file not found in $PATH
2.如果要操作容器里/etc/hosts这样的文件,会报错: can’t move ‘/etc/resolv.conf73UqmG’ to ‘/etc/resolv.conf’: Device or resource busy,一定要记着操作方式,如果用sed命令会报错,因为sed命令会重新拷贝一份,具体参考:https://www.cnblogs.com/xuxinkun/p/7116737.html
最后通过bash -c的方式往hosts文件里加域名:(因为openjdk:8-jdk-alpine只有sh没有bash,所以使用sh)

apiVersion: apps/v1
kind: Deployment
metadata:name: java-data-storelabels:app: java-data-store
spec:replicas: 1selector:matchLabels:app: java-data-storetemplate:metadata:labels:app: java-data-storespec:containers:- name: java-data-storeimage: harbor:9501/library/openjdk:8-jdk-alpineimagePullPolicy: IfNotPresentports:- name: data-storecontainerPort: 40502command: ["java", "-jar","jars/data-store.jar"]lifecycle:postStart:exec:command: ["sh","-c","echo 'xx.xx.xx.xx xxxx' >> /etc/hosts"]env:volumeMounts:- name: jar-volmountPath: /jars- name: log-volmountPath: app/logsrestartPolicy: Alwaysvolumes:- name: jar-volglusterfs:endpoints: glusterfs-clusterpath: gv0/userapp/java-apps/jarsreadOnly: false- name: log-volglusterfs:endpoints: glusterfs-clusterpath: gv0/userapp/java-apps/logs/data-storereadOnly: false
---
apiVersion: v1
kind: Service
metadata:name: java-data-store
spec:selector:app: java-data-storeports:- port: 40502targetPort: 40502nodePort: 30203type: NodePort

记录java应用部署到k8s中相关推荐

  1. 解决无法将java项目部署到tomcat中去

    project facets java转成web项目 用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个Java工程,将无法在Tomcat中进行部署运行. 方法: 1. ...

  2. java服务端部署到k8s集群

    首先java服务端部署到k8s中是通过git提交,那要准备好各种配置 1.先创建一个空的git文件 2.java服务端的jar包放到文件中 3.提交的文件必须包含java环境(这个环境就是引入自己打包 ...

  3. 部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewall 防火墙?

     关于防火墙的原因(nftables后端兼容性问题,产生重复的防火墙规则) The ip tables tooling can act as a compatibility layer, behavi ...

  4. k8s部署jar包_学习K8S之路.6--- 在K8S中部署Jenkins,并使用Jenkins打包jar包

    一:部署jenkins jenkins官网:https://jenkins.io/download/ jenkins镜像:https://hub.docker.com/r/jenkins/jenkin ...

  5. kubernetes(K8S)学习笔记P6:K8s集群|java项目部署

    kubernetes(K8S)学习笔记P6:K8s集群|java项目部署 8.集群资源监控 8.1概述 8.2搭建集群监控平台系统 8.2.1部署prometheus 8.2.3部署Grafana 8 ...

  6. jenkins 使用pipline实现K8S中springboot服务部署

    jenkins 使用pipline实现K8S中springboot服务部署 关键词 1. springboot 项目配置 1.1 配置 dockerfile-maven-plugin: 1.2 配置D ...

  7. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  8. 获取mysql可行方法_Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法...

    <Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法>要点: 本文介绍了Mysql学习Java实现获得MySQL数据库中所有表的记录总数可行方法,希望对您有用.如果有 ...

  9. 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查

    k8s 中 Pod 无法正常解析域名:部署 DNS 调试工具排查 问题描述 最近将 Kubernetes 升级到 1.18.1 版本,不过升级完后,查看工作节点的部分 Pod 无法启动,查看消息全是 ...

最新文章

  1. 手动创建一棵二叉树,然后利用前序、中序、后序、层序进行遍历(从创建二叉树到各种方式遍历)(含运行结果)
  2. 半世纪全球顶级学者迁移图(附视频、亿级学术信息)| 数据院科技大数据研究中心发布
  3. Android获取顶部状态栏statusBar高度、底部导航栏navigationBar高度
  4. 封装成vla函数_第四章:Python之函数
  5. g4e基础篇#6 了解Git历史记录
  6. 关于单链表,二叉树,图,查找和排序的软件编程
  7. jsr 正则验证_Java数据校验(Bean Validation / JSR303)
  8. Gradle插件学习笔记(二)
  9. wireshark 十六进制过滤_Wireshark过滤表达式大全
  10. 网络协议:TCP/IP协议,你看懂了吗?
  11. QueryPerformanceFrequency使用方法--Windows高精度定时计数
  12. 哈哈哈,我来啦~~(纯灌水帖)
  13. python注释程序_Python程序里的注释和#号
  14. sql server需要存储1000万条数据该怎么办?
  15. Jepack4.5.1上手动安装cuda10.0 cudnn 7, Jepack4.5.1 TX2 i安装pytorch1.6.0
  16. (原创)安卓抓包方案分享
  17. 传输线理论知识理解与总结(一)
  18. 51单片机:编程实现数码管显示0~999999的秒表计时,高位的0不显示。
  19. 如何通过Spring的ApplicationListener事件注册服务
  20. erp框架 saas_Saas模式ERP系统

热门文章

  1. Java黑皮书课后题第4章:*4.26(金融应用:货币单位)重写程序清单2-10,解决将float型值转换为int型值时可能会造成精度损失的问题。读取的输入值是一个字符串,比如“11.56“
  2. Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
  3. freebsd 手工安装zabbix2.0 php,zabbix 服务端,子客户端安装配置日志
  4. PPS2013校园招聘笔试题
  5. Spring Cloud与Duddo比较(非原创)
  6. vue中展示列表,类似formatter方法及在vue中点击页面信息事件
  7. vs2010 调试快捷键
  8. CONTEST199 [有奖]洛谷8月月赛题解
  9. 网站开发之鼠标悬停简单特效实现(四)
  10. 【数据结构与算法】之深入解析“太平洋大西洋水流问题”的求解思路与算法示例