k8s添加master节点报错提示“etcd cluster is not healthy”

原来集群中一个master节点操作系统坏掉了,所以需要重装操作系统,然后以master身份加入到原有集群。安装好docker和k8s以后,使用kubeadmJoin命令加入集群一直报错,错误信息如下:The reset process does not clean your kubeconfig files and you must remove them manually.Please, check...

阅读全文

k8s集群使用kubeadm添加master节点

之前有记录如何获取token的方法:https://sulao.cn/post/803.html,添加普通节点时,可以直接通过以下命令获取添加节点全部命令kubeadm token create --print-join-commandkubeadm join <ip:port> --token 7gmpm8.yxxahvalc8exemrg  --discovery-token-ca-cert-hash sha256:504ee4ac92...

阅读全文

k8s创建POD的具体流程原理

在用户使用kubectl命令提交yaml时,其实在整个k8s中很多组件都协调运作最终直观的展示生成的POD,那么这中间经历了很多流程,我们来看看这其中流程和原理具体是什么样的。当用户kubectl提交yaml文件以后,kubectl会将yaml文件转成符合resfulAPI规范的json数据提交到apiserver接口,apiserver接口有鉴权认证的功能,如果有做鉴权和认证那么在这一步就会进行认证,认证通过后就会将yaml提交的信息存储到etcd,这里我们可能会想到这就直接提交到etcd中存储,其它组件是如何之前用户新建了一个POD呢?api...

阅读全文

K8s中将DeployMent回滚到某个版本

在K8S1.9版本开始支持Deployment控制器,是基于第二代控制器replicaSet控制器的升级版,拥有更高级的镜像回滚等等高级功能。下面我们来看看使用DeployMent回滚到某一版本的具体操作查看orion命名空间下的rskubectl get rs -n orion查看版本迭代情况kubectl get rs -n orion orion-runtime-7b58f5c657 -o yaml | grep&nb...

阅读全文

containerd常用基本命令

在2016年12月14日,Docker公司宣布将containerd从Docker中分离,由开源社区独立发展和运营。Containerd完全可以单独运行并管理容器,而Containerd的主要职责是镜像管理和容器执行。同时,Containerd提供了containerd-shim接口封装层,向下继续对接runC项目,使得容器引擎DockerDaemon可以独立升级。Containerd可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。总结一下,它主要负责干以下事情:管理容器的生命周...

阅读全文

k8s部署ingress-nginx

官网安装指南可以查看这里:https://kubernetes.github.io/ingress-nginx/deploy/首先我们下载ingressdeploy文件wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.3/deploy/static/provider/aws/deploy.yaml注意ingress和k8s需要版本匹配,因为我k8s是1.19版本,所以ingress选择的是v1.1.3,下载到上述deploy.yaml...

阅读全文

k8s出现kubelet证书过期问题解决方法

一般我们在部署k8s集群,创建的证书期限只有一年,当master节点证书重建以后,那么此时在低版本的K8s集群中可能还会遇到以下客户端证书过期问题此时我们备份故障节点/etc/kubernets/kubelet.conf文件并删除,然后去一个正常的master节点,使用以下命令重新生成一个kubelet.conf文件kubeadm kubeconfig user --org system:nodes --client-name system:node:$NODE > k...

阅读全文

pod删除长时间处于Terminating状态的解决办法

当POD被删除以后,一直保持Terminating状态,那么这个POD可能不仅仅是删除不掉的问题,可能关联服务异常引起的,可以检查下kubelet服务和docker服务,或者其它问题引起的POD没有收到中断的信号。这里只是仅仅记录下如下强制删除这种POD,至于根本原因还需要根据自己环境情况进行排查。强制删除命令如下kubectl delete pod -n <namespace> <pod_name> --grace-period=0 --force也可以通过移...

阅读全文

python k8s api操作类

网上找了零散的,然后看了k8s的pythonapi,里面很有方法,大致整理了一下操作的封装,很多操作返回都有to_dict()方法可以直接将返回的对象转为字典,之前没注意,后面懒得改了,写的比较乱,直接记录下来方便以后使用。#!/usr/bin/python3#coding:utf-8__author__ = 'yang.su'from kubernetes import client, configfrom app.common impo...

阅读全文