K8S问题解决总结

使用KUBEADM安装完成大坑,必须要设置iptables 的策略为ACCEPT ,否则无法跨主机ping通及访问容器或物理机

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -L -n

KUBEADM init报错处理

[init] Using Kubernetes version: v1.17.9
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[preflight] Pulling images required for setting up a Kubernetes cluster

处理方式:
docker info | grep Cgroup
Cgroup Driver: cgroupfs
编辑文件/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=systemd
systemctl daemon-reload
systemctl restart docker
docker info | grep Cgroup
Cgroup Driver: systemd

解决/var/log/messages下面报的cgroup报错问题

1.8用这个
ExecStart=/usr/bin/kubelet --runtime-cgroups=/lib/systemd/system/kubelet.service --kubelet-cgroups=/lib/systemd/system/kubelet.service

1.7以下的用这个
vi /etc/systemd/system/multi-user.target.wants/kubelet.service
启动命令增加:
--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
或者直接删除增加下面的
ExecStart=/usr/bin/kubelet --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice

systemctl daemon-reload
systemctl restart kubelet

解决DAB界面监控问题

        args:
          - --cert-dir=/tmp
          - --secure-port=4443
          - --kubelet-preferred-address-types=InternalIP  增加
          - --kubelet-insecure-tls  增加

批量查看证书有效时间

/etc/kubernetes/pki/apiserver.crt                #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt           #10年有效期
/etc/kubernetes/pki/ca.crt                       #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt    #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt       #1年有效期
/etc/kubernetes/pki/etcd/server.crt              #1年有效期
/etc/kubernetes/pki/etcd/ca.crt                  #10年有效期
/etc/kubernetes/pki/etcd/peer.crt                #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt  #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期

for item in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`;do openssl x509 -in $item -text -noout| grep Not;echo ======================$item===============;done

kubectl get node 慢的原因,一般都是15S

使用kubectl get node -v=10 查看是是不是拿指标信息而造成的
如果是,可以删除这个,或者是把这个指标信息安装上

kubectl delete apiservice v1beta1.metrics.k8s.io

1-63秒延时问题,可以临时关闭校验

ethtool -K flannel.1 tx-checksum-ip-generic off

netfilter对64G内存的机器,推荐配置

net.netfilter.nf_conntrack_max=4194304
net.netfilter.nf_conntrack_tcp_timeout_established=300
net.netfilter.nf_conntrack_buckets=1048576

解决DNS不能访问,不能解析的问题

firewall-cmd --list-all
如果 masquerade: no,哪么要执行以下使命,更改为yes

firewall-cmd --add-masquerade --permanent
firewall-cmd --reload

也可以用iptables 把这个firewall,全给remove了