在工作节点和控制平面之间引入代理后,Kubernetes工作节点处于NotReady状态
我已经用在工作节点和控制平面之间引入代理后,Kubernetes工作节点处于NotReady状态,kubernetes,kubeadm,Kubernetes,Kubeadm,我已经用kubeamd设置了一个kubernetes集群;一个控制平面和一个辅助节点 一切都很顺利。然后 我在worker节点上设置了一个Squid代理,并在kubeletconfig中设置了http\u代理=http://127.0.0.1:3128基本上要求kubelet使用代理与控制平面通信 我看到,使用tcpdump,网络数据包从worker节点降落到控制平面上,我也能够从worker发出以下命令 kubectl get no --server=https://10.128.0.63:6
kubeamd
设置了一个kubernetes
集群;一个控制平面和一个辅助节点
一切都很顺利。然后
我在worker节点上设置了一个Squid代理,并在kubelet
config中设置了http\u代理=http://127.0.0.1:3128
基本上要求kubelet
使用代理与控制平面通信
我看到,使用tcpdump,网络数据包从worker节点降落到控制平面上,我也能够从worker发出以下命令
kubectl get no --server=https://10.128.0.63:6443
NAME STATUS ROLES AGE VERSION
k8-cp Ready master 6d6h v1.17.0
k8-worker NotReady <none> 6d6h v1.17.2
从工作节点
如果这里重要的是节点状态
kubectl describe no k8-worker
Name: k8-worker
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=k8-worker
kubernetes.io/os=linux
Annotations: flannel.alpha.coreos.com/backend-data: {"VtepMAC":"fe:04:d6:53:ef:cc"}
flannel.alpha.coreos.com/backend-type: vxlan
flannel.alpha.coreos.com/kube-subnet-manager: true
flannel.alpha.coreos.com/public-ip: 10.128.0.71
kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Wed, 29 Jan 2020 08:08:33 +0000
Taints: node.kubernetes.io/unreachable:NoExecute
node.kubernetes.io/unreachable:NoSchedule
Unschedulable: false
Lease:
HolderIdentity: k8-worker
AcquireTime: <unset>
RenewTime: Thu, 30 Jan 2020 11:51:24 +0000
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
MemoryPressure Unknown Thu, 30 Jan 2020 11:48:25 +0000 Thu, 30 Jan 2020 11:52:08 +0000 NodeStatusUnknown Kubelet stopped posting node status.
DiskPressure Unknown Thu, 30 Jan 2020 11:48:25 +0000 Thu, 30 Jan 2020 11:52:08 +0000 NodeStatusUnknown Kubelet stopped posting node status.
PIDPressure Unknown Thu, 30 Jan 2020 11:48:25 +0000 Thu, 30 Jan 2020 11:52:08 +0000 NodeStatusUnknown Kubelet stopped posting node status.
Ready Unknown Thu, 30 Jan 2020 11:48:25 +0000 Thu, 30 Jan 2020 11:52:08 +0000 NodeStatusUnknown Kubelet stopped posting node status.
Addresses:
InternalIP: 10.128.0.71
Hostname: k8-worker
Capacity:
cpu: 2
ephemeral-storage: 104844988Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 7493036Ki
pods: 110
Allocatable:
cpu: 2
ephemeral-storage: 96625140781
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 7390636Ki
pods: 110
System Info:
Machine ID: 3221f625fa75d20f08bceb4cacf74e20
System UUID: 6DD87A9F-7F72-5326-5B84-1B3CBC4D9DBE
Boot ID: 7412bb51-869f-40de-8b37-dcbad6bf84b4
Kernel Version: 3.10.0-1062.9.1.el7.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://1.13.1
Kubelet Version: v1.17.2
Kube-Proxy Version: v1.17.2
PodCIDR: 10.244.1.0/24
PodCIDRs: 10.244.1.0/24
Non-terminated Pods: (3 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
default nginx-86c57db685-fvh28 0 (0%) 0 (0%) 0 (0%) 0 (0%) 6d20h
kube-system kube-flannel-ds-amd64-b8vbr 100m (5%) 100m (5%) 50Mi (0%) 50Mi (0%) 6d23h
kube-system kube-proxy-rsr7l 0 (0%) 0 (0%) 0 (0%) 0 (0%) 6d23h
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 100m (5%) 100m (5%)
memory 50Mi (0%) 50Mi (0%)
ephemeral-storage 0 (0%) 0 (0%)
Events: <none>
kubectl未描述k8工人
姓名:k8工人
角色:
标签:beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=k8工作者
kubernetes.io/os=linux
注释:flannel.alpha.coreos.com/backend-data:{“VtepMAC”:“fe:04:d6:53:ef:cc”}
flannel.alpha.coreos.com/backend-type:vxlan
flannel.alpha.coreos.com/kube-subnet-manager:true
flannel.alpha.coreos.com/public-ip:10.128.0.71
kubeadm.alpha.kubernetes.io/cri-socket:/var/run/dockershim.sock
node.alpha.kubernetes.io/ttl:0
volumes.kubernetes.io/controller-managed-attach-detach:true
CreationTimestamp:Wed,2020年1月29日08:08:33+0000
污点:node.kubernetes.io/不可访问:NoExecute
node.kubernetes.io/unreachable:NoSchedule
计划外:错误
租赁:
持有人身份:k8工人
获取时间:
更新时间:2020年1月30日星期四11:51:24+0000
条件:
键入状态LastHeartbeatTime LastTransitionTime原因消息
---- ------ ----------------- ------------------ ------ -------
MemoryPressure Unknown Thu,2020年1月30日11:48:25+0000 Thu,2020年1月30日11:52:08+0000节点状态未知Kubelet已停止发布节点状态。
DiskPressure Unknown Thu,2020年1月30日11:48:25+0000 Thu,2020年1月30日11:52:08+0000节点状态未知Kubelet已停止发布节点状态。
Pidpression Unknown Thu,2020年1月30日11:48:25+0000 Thu,2020年1月30日11:52:08+0000节点状态未知Kubelet已停止发布节点状态。
就绪未知周四,2020年1月30日11:48:25+0000周四,2020年1月30日11:52:08+0000节点状态未知Kubelet已停止发布节点状态。
地址:
内部IP:10.128.0.71
主机名:k8工作者
容量:
中央处理器:2
短暂储存量:104844988Ki
hugepages-1Gi:0
hugepages-2Mi:0
内存:7493036Ki
豆荚:110
可分配:
中央处理器:2
短暂存储:96625140781
hugepages-1Gi:0
hugepages-2Mi:0
内存:7390636Ki
豆荚:110
系统信息:
机器ID:3221f625fa75d20f08bceb4cacf74e20
系统UUID:6DD87A9F-7F72-5326-5B84-1B3CBC4D9DBE
启动ID:7412bb51-869f-40de-8b37-dcbad6bf84b4
内核版本:3.10.0-1062.9.1.el7.x86_64
操作系统映像:CentOS Linux 7(核心)
操作系统:linux
架构:amd64
容器运行时版本:docker://1.13.1
Kubelet版本:v1.17.2
Kube代理版本:v1.17.2
PodCIDR:10.244.1.0/24
苹果酒:10.244.1.0/24
非端接吊舱:(共3个)
命名空间名称CPU请求CPU限制内存请求内存限制使用年限
--------- ---- ------------ ---------- --------------- ------------- ---
默认nginx-86c57db685-fvh28 0(0%)0(0%)0(0%)0(0%)0(0%)6d20h
kube系统kube-flannel-ds-amd64-b8vbr 100m(5%)100m(5%)50Mi(0%)50Mi(0%)6d23h
kube系统kube-proxy-RSR7L0(0%)0(0%)0(0%)0(0%)6d23h
分配的资源:
(总限额可能超过100%,即超额承诺。)
资源请求限制
-------- -------- ------
cpu 100m(5%)100m(5%)
内存50Mi(0%)50Mi(0%)
短期存储量0(0%)0(0%)
活动:
链接到worker上的kubelet日志:
Kube控制器管理器/节点控制器负责监控由kubelet公开的端点“/healthz”的节点的运行状况 到目前为止,您已经配置了通过代理的单向通信(从节点到主节点) 您需要为其他组件执行此操作,尤其是Kube controller manager。 通过这种方式,您可以通过HTTP代理实现双向通信 这可以通过在KUBEADM INIT:
$sudo http_proxy=192.168.1.20:3128 kubeadm init
在此处了解更多信息:
- 它创建一个一次性变量,该变量由kubeadm读入,然后在控制平面的所有组件内重新创建,也作为Env变量
kubeadm@lab-1:~$ sudo http_proxy=192.168.1.20:3128 kubeadm init
[init] Using Kubernetes version: v1.17.0
[preflight] Running pre-flight checks
[WARNING HTTPProxy]: Connection to "https://10.156.0.6" uses proxy "http://192.168.1.20:3128". If that is not intended, adjust your proxy settings
[WARNING HTTPProxyCIDR]: connection to "10.96.0.0/12" uses proxy "http://192.168.1.20:3128". This may lead to malfunctional cluster setup. Make sure that Pod and Services IP ranges specified correctly as exceptions in proxy configuration
- 或者,您可以通过Env变量手动执行此操作,就像您通过调整kube controller manager的pod规范对kubelet所做的那样
在此处了解更多信息:。您能否从worker@ArghyaSadhu我已经添加了链接
https://pastebin.com/E90FNEXR
为什么需要Kubelet通过Squid进行通信?您对Kube ap进行了任何配置吗
kubeadm@lab-1:~$ sudo http_proxy=192.168.1.20:3128 kubeadm init
[init] Using Kubernetes version: v1.17.0
[preflight] Running pre-flight checks
[WARNING HTTPProxy]: Connection to "https://10.156.0.6" uses proxy "http://192.168.1.20:3128". If that is not intended, adjust your proxy settings
[WARNING HTTPProxyCIDR]: connection to "10.96.0.0/12" uses proxy "http://192.168.1.20:3128". This may lead to malfunctional cluster setup. Make sure that Pod and Services IP ranges specified correctly as exceptions in proxy configuration