首页 > 解决方案 > Kubernetes v1.21.2:“selfLink 为空,无法引用”

问题描述

对于如下所示的 pod,我收到此日志错误,但我将 kubernetes 编排器、集群和节点更新为 kubernetes v1.21.2。在更新之前,它们是 v1.20.7。我发现从 v1.21 开始,selfLink 已完全删除。为什么我会收到此错误?我该如何解决这个问题?

kubectl 日志的错误日志(podname)

...
2021-08-10T03:07:19.535Z        INFO    setup   starting manager
2021-08-10T03:07:19.536Z        INFO    controller-runtime.manager      starting metrics server {"path": "/metrics"}
E0810 03:07:19.550636       1 event.go:247] Could not construct reference to: '&v1.ConfigMap{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"controller-leader-election-helper", GenerateName:"", Namespace:"kubestone-system", SelfLink:"", UID:"b01651ed-7d54-4815-a047-57b16d26cfdf", ResourceVersion:"65956", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63764161639, loc:(*time.Location)(0x21639e0)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string{"control-plane.alpha.kubernetes.io/leader":"{\"holderIdentity\":\"kubestone-controller-manager-f467b7c47-cv7ws_1305bc36-f988-11eb-81fc-a20dfb9758a2\",\"leaseDurationSeconds\":15,\"acquireTime\":\"2021-08-10T03:07:19Z\",\"renewTime\":\"2021-08-10T03:07:19Z\",\"leaderTransitions\":0}"}, OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry{v1.ManagedFieldsEntry{Manager:"manager", Operation:"Update", APIVersion:"v1", Time:(*v1.Time)(0xc0000956a0), Fields:(*v1.Fields)(nil)}}}, Data:map[string]string(nil), BinaryData:map[string][]uint8(nil)}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Normal' 'LeaderElection' 'kubestone-controller-manager-f467b7c47-cv7ws_1305bc36-f988-11eb-81fc-a20dfb9758a2 became leader'
2021-08-10T03:07:21.636Z        INFO    controller-runtime.controller   Starting Controller     {"controller": "kafkabench"}
...

kubectl get nodes to show kubernetes version:pod调度的节点是aks-default-41152893-vmss000000

PS C:\Users\t-yunlee> kubectl get nodes -A
NAME                              STATUS   ROLES   AGE     VERSION
aks-default-41152893-vmss000000   Ready    agent   5h32m   v1.21.2
aks-default-41152893-vmss000001   Ready    agent   5h29m   v1.21.2
aksnpwi000000                     Ready    agent   5h32m   v1.21.2
aksnpwi000001                     Ready    agent   5h26m   v1.21.2
aksnpwi000002                     Ready    agent   5h19m   v1.21.2

kubectl 描述 pod(pod 名称:kubestone-controller-manager-f467b7c47-cv7ws)

PS C:\Users\t-yunlee> kubectl describe pods kubestone-controller-manager-f467b7c47-cv7ws -n kubestone-system
Name:         kubestone-controller-manager-f467b7c47-cv7ws
Namespace:    kubestone-system
Priority:     0
Node:         aks-default-41152893-vmss000000/10.240.0.4
Start Time:   Mon, 09 Aug 2021 23:07:16 -0400
Labels:       control-plane=controller-manager
              pod-template-hash=f467b7c47
Annotations:  <none>
Status:       Running
IP:           10.240.0.21
IPs:
  IP:           10.240.0.21
Controlled By:  ReplicaSet/kubestone-controller-manager-f467b7c47
Containers:
  manager:
    Container ID:  containerd://01594df678a2c1d7163c913eff33881edf02e39633b1a4b51dcf5fb769d0bc1e
    Image:         bwatada/kubestonewindows:latest
    Image ID:      docker.io/bwatada/kubestonewindows@sha256:aa049f135931192630ceda014d7a24306442582dbeeaa36ede48e6599b6135e1
    Port:          <none>
    Host Port:     <none>
    Command:
      /manager
    Args:
      --enable-leader-election
    State:          Running
      Started:      Mon, 09 Aug 2021 23:07:18 -0400
    Ready:          True
    Restart Count:  0
    Limits:
      cpu:     100m
      memory:  30Mi
    Requests:
      cpu:        100m
      memory:     20Mi
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-jvjjh (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  kube-api-access-jvjjh:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node.kubernetes.io/memory-pressure:NoSchedule op=Exists
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  23m   default-scheduler  Successfully assigned kubestone-system/kubestone-controller-manager-f467b7c47-cv7ws to aks-default-41152893-vmss000000
  Normal  Pulling    23m   kubelet            Pulling image "bwatada/kubestonewindows:latest"
  Normal  Pulled     23m   kubelet            Successfully pulled image "bwatada/kubestonewindows:latest" in 354.899039ms
  Normal  Created    23m   kubelet            Created container manager
  Normal  Started    23m   kubelet            Started container manager

标签: kubernetesazure-aksconfigmap

解决方案


Kubestone 自 2019 年以来没有任何版本,它需要升级其 Kubernetes Go 客户端副本。也就是说,这似乎只影响事件记录器系统,所以可能不是什么大问题。


推荐阅读