对kubernetes感兴趣的能够加群885763297,一块儿玩转kubernetesnode
在host中没有加解析
linux
curl: (7) Failed connect to localhost:10248; 拒绝链接 在host中没有localhost的解析
git
vim /etc/ssconfig/docker --selinux-enabled=False
github
#下面的是关于bridge的配置: net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 1 #意味着二层的网络在转发包的时候会被iptables的forward规则过滤 net.bridge.bridge-nf-call-arptables = 0
web
unable to recognize "kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp [::1]:8080: connect: connection refused 下面若是在root用户下执行的,就不会报错 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
###六、error: unable to recognize “mycronjob.yml”: no matches for kind “CronJob” in version “batch/v2alpha1”
去kube-apiserver.yaml文件中添加: - --runtime-config=batch/v2alpha1=true,而后重启kubelet服务,就能够了
docker
docker pull quay.io/coreos/flannel:v0.10.0-amd64 mkdir -p /etc/cni/net.d/ cat <<EOF> /etc/cni/net.d/10-flannel.conf {"name":"cbr0","type":"flannel","delegate": {"isDefaultGateway": true}} EOF mkdir /usr/share/oci-umount/oci-umount.d -p mkdir /run/flannel/ cat <<EOF> /run/flannel/subnet.env FLANNEL_NETWORK=172.100.0.0/16 FLANNEL_SUBNET=172.100.1.0/24 FLANNEL_MTU=1450 FLANNEL_IPMASQ=true EOF kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
export KUBECONFIG=/etc/kubernetes/kubelet.conf
vim
vim /etc/sysconfig/kubelet --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice systemctl restart kubelet
api
大概意思是Flag --cgroup-driver --kubelet-cgroups 驱动已经被禁用,这个参数应该经过kubelet 的配置指定配置文件来配置网络
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false"
app
###十一、failed to run Kubelet: failed to create kubelet: miscon figuration: kubelet cgroup driver: “systemd” is different from docker cgroup driver: “cgroupfs”
kubelet: Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" docker: vi /lib/systemd/system/docker.service -exec-opt native.cgroupdriver=systemd
rm -f /usr/bin/crictl
若是指定的label在全部node上都没法匹配,则建立Pod失败,会提示没法调度:
kubeadm token create openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' kubeadm join --token aa78f6.8b4cafc8ed26c34f --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538 172.16.6.79:6443 --skip-preflight-checks
cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
May 29 06:30:28 fnode kubelet[4136]: E0529 06:30:28.935309 4136 kubelet.go:2130] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
删除 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 的 KUBELET_NETWORK_ARGS,而后重启kubelet服务 临时解决。没啥用
根本缘由是缺乏: k8s.gcr.io/pause-amd64:3.1
ifconfig cni0 down ifconfig flannel.1 down ifconfig del flannel.1 ifconfig del cni0 ip link del flannel.1 ip link del cni0 yum install bridge-utils brctl delbr flannel.1 brctl delbr cni0 rm -rf /var/lib/cni/flannel/* && rm -rf /var/lib/cni/networks/cbr0/* && ip link delete cni0 && rm -rf /var/lib/cni/network/cni0/*
`在 添加下面的这一段 (会从新申请资源) kubectl apply -f ceph/rbd/deploy/rbac/clusterrole.yaml
- --iface=eth0
https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns-pods-have-crashloopbackoff-or-error-state
若是您的网络提供商不支持portmap CNI插件,您可能须要使用服务的NodePort功能或使用HostNetwork=true。
排查:使用top查看前几名的内存使用状况,发现etcd服务使用了内存达到500M以上,kubelet使用内存200m,ceph使用内存总和是200多m,加起来就已经900m了,这些都是k8s以外的系统开销,已经彻底超出了系统预留内存,所以可能会触发系统级别的kill,
使用kubectl proxy功能
解决:去掉service.spec.selecter 标签就行了。
排查:此node节点上cpu使用率太高。
一、没有触发node节点上的cpuPressure的状态,判断出来不是k8s所管理的cpu占用太高的问题,应该是system、kube组件预留的cpu高致使的。 二、查看cpu和mem的cgroup分组,发现kubelet,都在system.sliec下面,所以判断kube预留资源没有生效致使的。 三、 --enforce-node-allocatable=pods,kube-reserved,system-reserved #采用硬限制,超出限制就oom --system-reserved-cgroup=/system.slice #指定系统reserved-cgroup对那些cgroup限制。 --kube-reserved-cgroup=/system.slice/kubelet.service #指定kube-reserved-cgroup对那些服务的cgroup进行限制 --system-reserved=memory=1Gi,cpu=500m --kube-reserved=memory=500Mi,cpu=500m,ephemeral-storage=10Gi
etcd cluster is not healthy: context deadline exceeded
对kubernetes感兴趣的能够加群885763297,一块儿玩转kubernetes