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系列---故障的更多相关文章

  1. Docker & k8s 系列二:本机k8s环境搭建

    本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...

  2. Docker & k8s 系列一:快速上手docker

    Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...

  3. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  4. k8s系列---Worker节点扩容

    其他有关内容 安装:参考https://www.cnblogs.com/dribs/p/9082458.html 集群故障重置:参考https://www.cnblogs.com/dribs/p/10 ...

  5. k8s系列---EFK日志系统

    文章拷于:http://blog.itpub.net/28916011/viewspace-2216748/   用于自己备份记录错误 一个完整的k8s集群,应该包含如下六大部分:kube-dns.i ...

  6. k8s系列文章第五篇(docker-compose)

    更多精彩内容,猛搓这里 目录 一.Docker Compose 1.前言 2.官方介绍 1.Compose 中有两个重要的概念 2.三步骤 3.Compose是Docker官方的开源项目,需要安装! ...

  7. K8S系列第九篇(持久化存储,emptyDir、hostPath、PV/PVC)

    更多k8s内容,请关注威信公众好:新猿技术生态圈 一.数据持久化 Pod是由容器组成的,而容器宕机或停止之后,数据就随之丢了,那么这也就意味着我们在做Kubernetes集群的时候就不得不考虑存储的问 ...

  8. 一次“不负责任”的 K8s 网络故障排查经验分享

    作者 | 骆冰利 来源 | Erda 公众号 ​ 某天晚上,客户碰到了这样的问题:K8s 集群一直扩容失败,所有节点都无法正常加入集群.在经过多番折腾无解后,客户将问题反馈到我们这里,希望得到技术支持 ...

  9. k8s系列~mgr的应用

    一  简介:今天咱们大体介绍下 这两者是如何联系的二  概念解析     pod:说下我的理解    1 pod通过yaml文件来封装docker本身+启动形式    2 pod可以运行多个docke ...

随机推荐

  1. dp-LCS(递归输出最短合串)

    Problem Description The company "21st Century Fruits" has specialized in creating new sort ...

  2. AVR单片机教程——串口接收

    本文隶属于AVR单片机教程系列.   上一讲中,我们实现了单片机开发板向电脑传输数据.在这一讲中,我们将通过电脑向单片机发送指令,让单片机根据指令控制LED.这一次,两端的TX与RX需要交叉连接,单片 ...

  3. 8.JavaSE之变量、常量、作用域

    变量variable: 变量是什么:就是内存中开辟的可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,作用域   ...

  4. Ubuntu16手动安装OpenStack——nova篇。。转

    前言: 本文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-nova/ ,过程非常的详细,作者也说本实验最终失败,因为课程要求我们只要 ...

  5. 面试必备!Java核心技术100+面试题

    一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...

  6. 使用doxygen

    Getting started with Doxygen 可执行文件doxygen是解析源文件并生成文档的主程序. 另外, 也可以使用可执行文件doxywizard, 是用于编辑配置文件, 以及在图形 ...

  7. [校内训练19_09_10]sort

    题意 给一个非负整数序列,每次问能否异或上一个正整数使得所有的数单调不减.如果能,输出最小的x,否则输出-1.单点修改.多测.要求最多一个log. 思考 只要考虑相邻的两个数.找到这两个数最高的不同的 ...

  8. Python学习初级python3.6的安装配置

    首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载. 2. ...

  9. ios--->帧动画

    帧动画 NSMutableArray<UIImage *> *imageArr=[NSMutableArray array]; for(int i=0;i<20;i++){ NSSt ...

  10. flask插件全家桶集成学习---持续更新ing

    不得不说flask的设计要比django要小巧精妙的多了,没有那么臃肿,只保留核心功能,其他的都需要自己引入,即各种各样的插件来满足我们的需求,我这里记录一下自己学习项目中用的插件使用方法和一些技巧总 ...