网站首页 > 博客文章 正文
kubernetes部署docker项目:
docker build . -t myblog:v1 -f Dockerfile
创建docker 容器:
docker run --name mysql -p 3306:3306 --restart always -e MYSQL_DATABASE=mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
查看mysql容器:
docker exec -it $pod_name /bin/bash
mysql -uroot -p123456
show databases;
use mysql;
show tables;
~~~我是华丽的分隔线~~~
部署Django应用:
Django应用依赖python,在settings.py里面配置数据库的属性,包括数据库名、账号、密码、主机host、端口等属性。
docker run --name myblog -p 8002:8002 -e MySQL_HOST=192.168.116.168 -e MYSQL_USER=root -e MYSQL_PASSWORD=123456 myblog:v1
~~~我是华丽的分隔线~~~
k8s容器命名规则:
k8s_{container_name}_{pod_fullName}_{namespace}_{pod_UID}_{podrestartCount}
Pod_FullName=deployment+replicasetName+ComputeHash,其中第一个字段是deploymentName,前两个字段合称replicasetName,第三个字段是ComputeCount,三个字段中间是用横杠隔开的。
~~~我是华丽的分隔线~~~
确认pod是否是内存溢出oom导致pod被killed后重启:
egrep -r "killed as" /var/log/messages
dmesg -T | grep killed 找到pod_id
docker ps | grep $pod_id 找到pod_name
查看到被kill的容器Container_ID,然后docker ps | grep $Container_ID 查看到对应的kubernetes pod名称。
kubectl get pod $pod_name -n $namespace -o yaml | grep -C 6 "request"
需要查看这个pod的内存limit值。
kubectl top pod $pod_name -n $namespace
需要查看这个pod的memory内存top值,单位是Byte。
如果pod的memory limit值和top pod的memory值极其接近,说明是内存溢出导致pod oom。
~~~我是华丽的分隔线~~~
kubernetes的pod重启时间和次数,一般看kubectl get pod -n $namespace结果中的AGE和RESTART字段。
一般pod的oomkilled属于内存溢出或者程序的内存使用峰值超过cgroup限制的值导致。
一般pod的liveness probe failed探针检测失败是由于pod的内部进程或者端口异常导致。
一般kubernetes中pod里面有liveness probe探活检测的脚本。
~~~我是华丽的分隔线~~~
kubernetes进入pod:
kubectl exec -it -n$namespace $pod_name -- /bin/bash
~~~我是华丽的分隔线~~~
kubernetes维护节点:
kubectl cordon $node_name
kubernetes驱逐pod:
kubectl drain $node_name --ignore-daemonsets --delete-local-data
--ignore-daemonsets是忽略daemonsets类型的pod。
--delete-local-data在驱逐节点之前删除节点上的pod本地数据。本地数据包括pod的日志、镜像和其他本地数据。如果不添加这个选项,那么本地数据将保留在这个节点上,并且需要手动清理。
~~~我是华丽的分隔线~~~
kubernetes隔离异常状态的pod:
kunectl get svc -n $namespace
查看pod的标签:
kubectl get pod -n $namespace -o wide -l --show-labels
kubectl get pod -n $namespace -o wide -l app=$label_name
kubectl get endpoints -n $namespace $deployment_name
隔离异常状态的pod命令:
kubectl -n $namespace label pod $pod_name app=$deployment_name_isolation -overwrite
验证,再次查看pod的标签:
kubectl get pod -n $namespace -o wide -l --show-labels
~~~我是华丽的分隔线~~~
鼓励的话语:想要受到拥护,就要争取人心!
猜你喜欢
- 2024-09-11 聊聊kingbus的startMasterServer(聊聊日常电视剧全集免费)
- 2024-09-11 这篇Redis文章,图灵看了都说好(redis原理图)
- 2024-09-11 PT-KILL长尾慢SQL有时失灵?自写脚本更靠谱
- 2024-09-11 基于 Spring Boot 的电商秒杀系统 jseckill
- 2024-09-11 技术分享 | 从库 MTS 多线程并行回放(一)
- 2024-09-11 常用数据库的最大连接数的获取和修改
- 2024-09-11 MySQL 调试环境搭建:VSCode + Docker
- 2024-09-11 Linux服务器百万并发实现与问题排查
- 2024-09-11 Elasticsearch + Logstash + Kibana 安装(全)
- 2024-09-11 图文结合带你搞懂MySQL日志之Slow Query Log(慢查询日志)
你 发表评论:
欢迎- 06-23MySQL合集-mysql5.7及mysql8的一些特性
- 06-23MySQL CREATE TABLE 简单设计模板交流
- 06-23MYSQL表设计规范(mysql设计表注意事项)
- 06-23MySQL数据库入门(四)数据类型简介
- 06-23数据丢失?别慌!MySQL备份恢复攻略
- 06-23MySQL设计规范(mysql 设计)
- 06-23MySQL数据实时增量同步到Elasticsearch
- 06-23MySQL 避坑指南之隐式数据类型转换
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)