K8S运维中遇到的问题

​ 1.Get http://127.0.0.1:10252/healthz: dial tcp 127.0.0.1:10252: connect: connection refused

    kube-scheduler             0/1     Running   161        9s

出现这种情况是kube-controller-manager.yaml和kube-scheduler.yaml设置的默认端口是0,在文件中注释掉就可以了。(每台master节点都要执行操作)

1.修改每台 master 节点kube-scheduler.yaml文件

vim /etc/kubernetes/manifests/kube-scheduler.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: kube-scheduler
    tier: control-plane
  name: kube-scheduler
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-scheduler
    - --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
    - --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
    - --bind-address=127.0.0.1
    - --kubeconfig=/etc/kubernetes/scheduler.conf
    - --leader-elect=true
#    - --port=0                  ## 注释掉这行

 kube-controller-manager 同理

然后systemctl restart kubelet.service

2.containerd 容器部署的k8s 集群磁盘不足,清理过期镜像

正在运行的容器的镜像不会出现在列表里。直接清理即可

for i in `ctr -n k8s.io i list -q `  ;do ctr -n k8s.io i rm $i ;done 

3.nodeport svc映射端口在node上无法通过netstat查看到 

因为k8s中通过一些网络技术来实现service的负载均衡和端口转发 比如iptables或者ipvs 将流量转发到实际的服务pod ip端口上 并没有一个进程在这个端口上监听所以节点上netstat不显示 、容器启动的端口也无法在节点上netstat查看到 因为netstat显示的是宿主机本身的网络监听端口无法直接看到容器内部通过docker网络配置的端口 但是进入容器后可以netstat查看到

4,containerd 容器部署的k8s 集群磁盘不足,清理快照

containerd 会定期进行snapshot,如果容器长期运行不重启会导致snapshot过多。如何鉴别具体是哪个容器导致的

首先确认是snapshot 导致的磁盘不足
查看你的容器路径下的 /你的容器存储路径/containerd/io.containerd.snapshotter.v1.overlayfs/
这个就是snapshot文件夹
里面应该都是一些数字文件夹
进入之后du -sh *
找到比较大的文件夹
复制一下文件夹名称 举例5858
mount | grep 5858
查看具体的容器名称 假设容器前几个字符为21b11445
ctr -n k8s.io container ls | grep 21b11445
crictl ps | grep 21b11445
确认容器名称  重新部署容器 
就会删除这个容器导致的snapshot

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值