在工作节点和控制平面之间引入代理后,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