k8s系列---故障
kubectl get namespace prom Terminating 45h
namespace 出现Terminating 状态,一直删不掉
解决:
1:导出namespace的json文件
[root@master ~]# kubectl get namespace prom -o json > prom.json
2:修改json文件
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"annotations": {
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"prom\"}}\n"
},
"creationTimestamp": "2019-01-29T04:01:48Z",
"deletionTimestamp": "2019-01-30T07:09:57Z",
"name": "prom",
"resourceVersion": "2427154",
"selfLink": "/api/v1/namespaces/prom",
"uid": "99b33767-237a-11e9-b2d9-000c297e6ade"
},
"spec": {
"finalizers": [
]
},
"status": {
"phase": "Terminating"
}
}
删除上面finalizers里的kubernetes
3:开个代理
[root@master ~]# kubectl proxy --port=8001 Starting to serve on 127.0.0.1:8001
4:执行json文件
[root@master ~]# curl -k -H "Content-Type: application/json" -X PUT --data-binary @prom.json http://127.0.0.1:8001/api/v1/namespaces/prom/finalize
如果上面执行没删掉,出现code:409 ,则把上面json文件内的 "resourceVersion": "2427154", 这一行删掉,重新执行4
同一个yaml文件内两个subPath无法挂载到同一个pvc的问题
网上大多数给的参考是每个subPath都写了一个volumeMounts,而研发同学也没注意,就在同一个containers下的name下也写了两个volumeMounts,导致第一个volumeMounts挂载的时候总是挂载不上。
解决:
volumeMounts:
- name: log-data
mountPath: /home
subPath: testa
- name: log-data
mountPath: /usr/src/html
subPath: testb
运行一段时间后 pod出现 Evicted 状态
删除
kubectl get pods -n kube-system | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n kube-syste
节点资源耗尽 NodeHasSufficientMemory
如何清理Docker占用的磁盘空间?
查看使用情况
docker system df
docker system prune
基于K8S的CI过程出现 jenkins一直转圈圈,jenkins-slave不创建
测试k8s和jenkins是否处于连通状态
我之前是写的https://kubernetes.default,当时测试是没问题的,后来CI阶段的时候出现了上述问题
解决就是不用域名了,直接改ip
使用 # kubectl cluster-info可以查看 apiserver的地址和端口,最终测试通过
jenkins的地址就不要改了,改了发现build的时候还是转圈圈,虽然能拉下slave出来,查看slave的pod日志,发现连接64的50000端口去了,应该连接jenkins-pod的50000,于是jenkins改成域名的
最终配置如下

helm install时出现错误“Error: error installing: the server could not find the requested resource”
解决办法:大致就是helm版本不兼容 Kubernetes 1.16.0 的 apiVersion
https://www.chenshaowen.com/blog/summary-of-installation-problems-for-kubernetes-1.6.0.html
https://feisky.gitbooks.io/kubernetes/apps/helm.html
k8s集群在RBAC分级授权时发生误操作,应该是证书被覆盖,kubectl命令无法使用了,按照网上替换证书的方式操作不管用
保利点解决:kubeadmin reset -f 重置集群 重新加入,然后各类服务重新创建
kubeadm reset -f
kubeadm join 172.16.10.241:6443 --token olfmpz.2w1mzqjzhv5w0xlr --discovery-token-ca-cert-hash sha256:2cbfe9767b7cc83b03986238d6a409fa444948b34bfee920aa267cc18878305e
k8s系列---故障的更多相关文章
- Docker & k8s 系列二:本机k8s环境搭建
本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...
- Docker & k8s 系列一:快速上手docker
Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
- k8s系列---Worker节点扩容
其他有关内容 安装:参考https://www.cnblogs.com/dribs/p/9082458.html 集群故障重置:参考https://www.cnblogs.com/dribs/p/10 ...
- k8s系列---EFK日志系统
文章拷于:http://blog.itpub.net/28916011/viewspace-2216748/ 用于自己备份记录错误 一个完整的k8s集群,应该包含如下六大部分:kube-dns.i ...
- k8s系列文章第五篇(docker-compose)
更多精彩内容,猛搓这里 目录 一.Docker Compose 1.前言 2.官方介绍 1.Compose 中有两个重要的概念 2.三步骤 3.Compose是Docker官方的开源项目,需要安装! ...
- K8S系列第九篇(持久化存储,emptyDir、hostPath、PV/PVC)
更多k8s内容,请关注威信公众好:新猿技术生态圈 一.数据持久化 Pod是由容器组成的,而容器宕机或停止之后,数据就随之丢了,那么这也就意味着我们在做Kubernetes集群的时候就不得不考虑存储的问 ...
- 一次“不负责任”的 K8s 网络故障排查经验分享
作者 | 骆冰利 来源 | Erda 公众号 某天晚上,客户碰到了这样的问题:K8s 集群一直扩容失败,所有节点都无法正常加入集群.在经过多番折腾无解后,客户将问题反馈到我们这里,希望得到技术支持 ...
- k8s系列~mgr的应用
一 简介:今天咱们大体介绍下 这两者是如何联系的二 概念解析 pod:说下我的理解 1 pod通过yaml文件来封装docker本身+启动形式 2 pod可以运行多个docke ...
随机推荐
- Vue CLI及其vue.config.js(一)
有时候我们为了快速搭建一个vue的完整系统,经常会用到vue-cli,vue-cli用起来很方便而且命令简单容易上手,但缺点是在构建的时候我感觉有一些慢,因为CLI 服务 (@vue/cli-serv ...
- 配置IDEA默认作者@author
IDEA安装目录下,使用文本编辑器打开~/bin/idea64.exe.vmoptions文件 在最后添加:-Duser.name=Your name 保存重启IDEA,Done
- Vue中的nextTick()浅析
引言 在开发过程中,我们经常遇到这样的问题:我明明已经更新了数据,为什么当我获取某个节点的数据时,却还是更新前的数据? 一,浅析 为什么会这样呢?带着这个疑问先往下看. 先看一个小的例子: <d ...
- App的基本结构
今天主要学习安装了Android Studio,并且成功地在虚拟机上运行了HelloWord工程.下面针对HelloWord工程对app的基本框架结构进行一个总结.掌握app的基本结构对初学软件开发的 ...
- Flask登录认证
login函数 @app.route('/login/', methods=['GET', 'POST']) def login(): if request.method == 'GET': retu ...
- pikachu漏洞练习之sql注入
这里因为实验的时候只记录了一部分所以就展示一部分 1.1.1数字型注入 (1)看到界面发现是查询id功能,没有在url里看到有传参所以应该是post方法提交数据. (2)进行sql注入之前我们最好是先 ...
- Python-logging模块简单使用
logging模块只要用于日志的打印.模块的源码在:Lib/logging/__init__.py 其中,logging.basicConfig(**kwargs)方法用于进行基本的属性配置,它的参数 ...
- ubuntu 18.04.1安装hadoop3.1.2
前提,虚拟机安装 见https://www.cnblogs.com/cxl-blog/p/11363183.html 一.按照https://blog.csdn.net/MastetHuang/art ...
- 使用postman测试接口
1.什么是接口测试 其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址.请求参数,拼接报文,然后 ...
- 百度ai 接口调用
1.百度智能云 2.右上角 管理控制台 3.左上角产品服务 选择应用 4.创建应用 5.应用详情下面的查看文档 6.选择pythonSDK 查看下面快速入门文档 和 接口说明文档. 7.按步骤写 ...