k8s 查看mysql 日志_k8s 使用 Init Container 确保依赖的服务已经启动
k8s 使用 Init Container 确保依赖的服务已经启动
Intro
最近 helm 3 正式发布了,dotnetcore 3.1 也正式发布了,最近打算把我的活动室预约项目做一个升级,项目已经升级到了 dotnetcore 3.1,最近几天则在准备把项目打包一个 helm 包,使得想要在 k8s 上部署的童鞋可以更方便的部署,目前已经基本完成,本来打算发布到阿里云的 AppHub 上,但是前几天更新的 angular client 的 chart 还没有更新,不知道最近是不更新了还是怎么回事,所以现在暂时还没发布到阿里云的 AppHub。你如果想要现在体验,可以直接拉取 Github 上的 chart 配置,自己打包安装。
一个 Pod 中可以有多个 container,也可以有多个 init container,init container 会在应用启动之前启动,并且如果有多个应用会依次启动,只有一个运行成功了,才会启动下一个,所有 init container 都运行结束了,应用才会启动,因此,我们可以借助 init container 来检查应用的依赖(如:db/redis/es...)是否已经可用。
Init Container 使用示例
apiVersion: v1
kind: Pod
metadata:name: myapp-podlabels:app: myapp
spec:containers:- name: reservation-serverimage: weihanli/activityreservation:devports:- name: httpcontainerPort: 80protocol: TCPlivenessProbe:httpGet:path: /healthport: httpinitialDelaySeconds: 60periodSeconds: 10readinessProbe:httpGet:path: /api/noticeport: httpinitialDelaySeconds: 60periodSeconds: 10initContainers:- name: init-redisimage: busybox:1.31command: ['sh', '-c', 'until nslookup redis-server; do echo waiting for redis; sleep 2; done;']- name: init-mysqlimage: busybox:1.31command: ['sh', '-c', 'until nslookup mysql-server; do echo waiting for mysql; sleep 2; done;']
上面这一示例定义了两个 init container,一个用来检查 redis 是否启动成功,另外一个用来检查 mysql 是否启动成功,开始部署的时候,首先会通过 nslookup
检查 redis 是否成功启动,检测到 redis 启动了之后,域名解析也就会成功,然后会检查 mysql 的状态,mysql 也成功启动之后才会开始启动 reservation-server
container
查看 pod 信息:
kubectl describe po reservation-server-59fb5447f7-gb5jg
从上面的信息可以看到结果是符合预期的,首先是创建并启动 init-redis
的容器,然后创建并启动 init-mysql
容器,最后创建并启动 reservation-server
容器,从 pod 状态来看,redis 和 mysql 还未 ready
时,resrvation-server
容器也不会启动
查看 init-redis 的日志
kubectl logs reservation-server-59fb5447f7-gb5jg -c init-redis
查看 init-mysql 的日志:
kubectl logs reservation-server-59fb5447f7-gb5jg -c init-mysql
Memo
通过 init container 的配置终于可以解决依赖的服务还没有 ready 应用就启动从而导致应用多次重启之后才能正常工作的问题~~
Reference
- https://kubernetes.io/docs/concepts/workloads/pods/init-containers
- https://github.com/WeihanLi/ActivityReservation/blob/dev/k8s/charts/reservation-server/templates/deployment.yaml
- https://github.com/WeihanLi/ActivityReservation/tree/dev/k8s/charts/reservation-server
k8s 查看mysql 日志_k8s 使用 Init Container 确保依赖的服务已经启动相关推荐
- k8s 使用 Init Container 确保依赖的服务已经启动
k8s 使用 Init Container 确保依赖的服务已经启动 Intro 最近 helm 3 正式发布了,dotnetcore 3.1 也正式发布了,最近打算把我的活动室预约项目做一个升级,项目 ...
- K8S查看容器日志、进入容器内部
K8S查看容器日志.进入容器内部 前言 常用命令 查看所有正在运行的pod 查看容器日志 查看pod的详细信息,以yaml格式或json格式显示 查看pod的描述信息 查看node或pod的资源使用情 ...
- navicat mysql 日志_使用Navicat查看MySQL日志的具体方法
使用Navicat查看MySQL日志的具体方法 发布时间:2020-05-18 14:04:52 来源:51CTO 阅读:699 作者:三月 下文主要给大家带来使用Navicat查看MySQL日志的具 ...
- 利用 mysqlbinlog 查看 mysql 日志
这几天遇到个玄学bug,想要通过查看 mysql 日志跟踪问题,学了下如何查看 mysql 日志,记录一下. 本文不介绍日志内容的含义,只介绍查看日志的方法. 正文 主要用到了mysql自带的工具:m ...
- linux查看mysql连接日志文件,linux下查看mysql日志文件的方法
查看mysql日志方法: mysql默认不允许我们查看日志.需要更改一些设置 1 vi 更改配置文件 允许用户查看日志文件 sudo vi /etc/mysql/mysql.conf.d/mysqld ...
- docker查看mysql日志_Docker 容器日志分析
查看容器日志 先使用 docker run -it --rm -d -p 80:80 nginx:1.15.8-alpine命令启动一个nginx容器.如果没有异常,会得到容器ID如 d2408a7 ...
- win 查看mySQL日志_Windows下MySQL日志操作
日志文件类型概述: 1. 错误日志 记录启动.运行或停止mysqld时出现的问题. My.ini配置信息: #Enter a name for the error log file. Otherwis ...
- 查看mysql日志文件大小和数据库大小
2019独角兽企业重金招聘Python工程师标准>>> 查看数据库日志文件的大小 show binary logs; 删除bin-log(删除mysql-bin.00000*小于my ...
- 查看mysql日志大小,SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)
SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很多的 ...
最新文章
- kafka项目启动_Kafka 探险 源码环境搭建
- kafka高可用(集群)
- Linux命令Find实例
- R语言数据挖掘2.1.1.1 频繁项集
- 完整的WebApplication JSF EJB JPA JAAS –第2部分
- MySQL入门之索引
- webpack插件配置(二)- HtmlWebpackPlugin
- 读书笔记2014第12本:《创新者的窘境》
- spss入门——简单的数据预处理到时间序列分析系列(五)
- 【知识兔课程】跨境电商骗局揭秘及应对策略整理(2021版)
- android mvp mvvm ppt,Android中MVC MVP MVVM模式
- 岳飞诗词集萃[zz]
- Django+Vue实现增删改查操作
- 给游戏开发初学者的10条建议
- RT系统+STM32+SYN8266播报+红外定时器
- 120个ps常用的好看的英文艺术字体下载分享
- 尺寸压缩与质量压缩的文件大小及效果对比,webp格式
- FreeRTOS 任务管理之任务创建
- 自己制作的一个小网站--张晶塑料包装制品厂
- 809计算机考研,2017年南开大学计算机与控制工程学院809计算机综合基础考研题库...