zoukankan      html  css  js  c++  java
  • Kubernetes 创建 pvc error getting claim reference: selfLink was empty, can‘t make refere,kubernetes 1.20版本以后 禁用了 selfLink

    Kubernetes 创建 pvc error getting claim reference: selfLink was empty, can‘t make refere

    nfs插件报错误日志如下:

    I0517 12:05:38.865404       1 leaderelection.go:156] attempting to acquire leader lease...
    I0517 12:05:38.912969       1 leaderelection.go:178] successfully acquired lease to provision for pvc default/pvc-sc
    I0517 12:05:38.913107       1 controller.go:1167] scheduleOperation[provision-default/pvc-sc[a75c71c6-f313-44d3-8fb6-ce67deabc651]]
    E0517 12:05:38.926057       1 controller.go:853] Unexpected error getting claim reference to claim "default/pvc-sc": selfLink was empty, can't make reference
    

    找了找资料发现,kubernetes 1.20版本 禁用了 selfLink。

    解决方法1:

    资料连接:
    https://stackoverflow.com/questions/65376314/kubernetes-nfs-provider-selflink-was-empty
    https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/issues/25

    当前的解决方法是编辑/etc/kubernetes/manifests/kube-apiserver.yaml
    在这里:

    spec:
      containers:
      - command:
        - kube-apiserver
          添加这一行:
    - --feature-gates=RemoveSelfLink=false
    

    然后应用它,即可

    kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
    

    解决方法2:

    如果是二进制安装的kubernetes集群,可以直接修改kube-apiserver文件,然后重启

    vim /etc/systemd/system/kube-apiserver.service
    [Unit]
    Description=Kubernetes API Server
    Documentation=https://github.com/GoogleCloudPlatform/kubernetes
    After=network.target
    
    [Service]
    ExecStart=/opt/kube/bin/kube-apiserver 
      --advertise-address=192.168.40.199 
      --allow-privileged=true 
      --anonymous-auth=false 
      --api-audiences=api,istio-ca 
      --authorization-mode=Node,RBAC 
      --bind-address=192.168.40.199 
      --client-ca-file=/etc/kubernetes/ssl/ca.pem 
      --endpoint-reconciler-type=lease 
      --etcd-cafile=/etc/kubernetes/ssl/ca.pem 
      --etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem 
      --etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem 
      --etcd-servers=https://192.168.40.199:2379,https://192.168.40.207:2379,https://192.168.40.209:2379 
      --kubelet-certificate-authority=/etc/kubernetes/ssl/ca.pem 
      --kubelet-client-certificate=/etc/kubernetes/ssl/kubernetes.pem 
      --kubelet-client-key=/etc/kubernetes/ssl/kubernetes-key.pem 
      --secure-port=6443 
      --service-account-issuer=https://kubernetes.default.svc 
      --service-account-signing-key-file=/etc/kubernetes/ssl/ca-key.pem 
      --service-account-key-file=/etc/kubernetes/ssl/ca.pem 
      --service-cluster-ip-range=10.68.0.0/16 
      --service-node-port-range=30000-32767 
      --tls-cert-file=/etc/kubernetes/ssl/kubernetes.pem 
      --tls-private-key-file=/etc/kubernetes/ssl/kubernetes-key.pem 
      --requestheader-client-ca-file=/etc/kubernetes/ssl/ca.pem 
      --requestheader-allowed-names= 
      --requestheader-extra-headers-prefix=X-Remote-Extra- 
      --requestheader-group-headers=X-Remote-Group 
      --requestheader-username-headers=X-Remote-User 
      --proxy-client-cert-file=/etc/kubernetes/ssl/aggregator-proxy.pem 
      --proxy-client-key-file=/etc/kubernetes/ssl/aggregator-proxy-key.pem 
      --enable-aggregator-routing=true 
      --feature-gates=RemoveSelfLink=false 
      --v=2
    Restart=always
    RestartSec=5
    Type=notify
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    
    
    
    
    

    重新加载kube-apiserver.service

    systemctl daemon-reload && systemctl restart kube-apiserver
    

    重新删除一下nfs插件,观察日志,直到日志显示如下,即为成功

    [root@master1-192-168-40-199 ~]# kubectl  logs -n kube-system nfs-provisioner-01-574d6c4db6-nbfdw
    I0517 12:06:33.573502       1 controller.go:492] Starting provisioner controller 52712073-b708-11eb-804e-86e1c009f86c!
    I0517 12:06:33.602105       1 controller.go:1167] scheduleOperation[lock-provision-default/pvc-sc[a75c71c6-f313-44d3-8fb6-ce67deabc651]]
    I0517 12:06:33.639435       1 leaderelection.go:156] attempting to acquire leader lease...
    I0517 12:06:48.602638       1 controller.go:1167] scheduleOperation[lock-provision-default/pvc-sc[a75c71c6-f313-44d3-8fb6-ce67deabc651]]
    I0517 12:06:50.264165       1 leaderelection.go:178] successfully acquired lease to provision for pvc default/pvc-sc
    I0517 12:06:50.264748       1 controller.go:1167] scheduleOperation[provision-default/pvc-sc[a75c71c6-f313-44d3-8fb6-ce67deabc651]]
    I0517 12:06:50.281135       1 controller.go:900] volume "pvc-a75c71c6-f313-44d3-8fb6-ce67deabc651" for claim "default/pvc-sc" created
    I0517 12:06:50.298751       1 controller.go:917] volume "pvc-a75c71c6-f313-44d3-8fb6-ce67deabc651" for claim "default/pvc-sc" saved
    I0517 12:06:50.298796       1 controller.go:953] volume "pvc-a75c71c6-f313-44d3-8fb6-ce67deabc651" provisioned for claim "default/pvc-sc"
    I0517 12:06:52.282891       1 leaderelection.go:198] stopped trying to renew lease to provision for pvc default/pvc-sc, task succeeded
    
    
  • 相关阅读:
    练习三
    练习四
    练习二
    软件生命周期
    练习一 第六题
    练习一 第五题
    练习一 第四题
    练习一 第三题
    练习一 第二题
    AngularJs模块
  • 原文地址:https://www.cnblogs.com/Serverlessops/p/14778347.html
Copyright © 2011-2022 走看看