zoukankan      html  css  js  c++  java
  • 通过 etcdctl 修改 kubernetes 集群 master node name 未成功

    kubernetes 集群 master 节点名称是 k8s-master0,想修改为 kube-master0

    $ kubectl get nodes
    NAME          STATUS   ROLES                  AGE     VERSION
    k8s-master0   Ready    control-plane,master   372d    v1.20.2
    

    这个 node name 对应的 etcd 配置数据项 key 是 /registry/minions/k8s-master0,如果通过下面的命令删除这个 key,k8s-master0 就会从 kubectl get nodes 的命令结果中消失。

    etcdctl del /registry/minions/k8s-master0
    

    现在的企图是通过修改这个 etcd 配置数据项修改 node name,由于没有找到直接修改 key 与 value 的方法,于是采用导出->修改->添加的方式,使用了如下的 shell 命令

    key=/registry/minions/k8s-master0
    etcdctl get $key --print-value-only > kv-item.txt
    sed -i "s/k8s-master0/kube-master0/" kv-item.txt
    cat kv-item.txt | etcdctl put `echo $key | sed "s/k8s-master0/kube-master0/"`
    

    确认是否添加成功

    $ etcdctl get /registry/minions/kube-master0 --keys-only
    /registry/minions/kube-master0
    

    添加成功,但运行 kubectl get nodes 命令却报错

    $ kubectl get nodes
    Error from server: proto: Unknown: illegal tag 0 (wire type 0)
    

    请问如何解决?

    回答

    问题补充:

    给 etcdctl 加了 -w fields 参数后有了进展

    key=/registry/minions/k8s-master0
    etcdctl get $key -w fields > kv-item.txt
    sed -i "s/k8s-master0/kube-master0/" kv-item.txt
    cat kv-item.txt | etcdctl put `echo $key | sed "s/k8s-master0/kube-master0/"` -w fields
    

    运行上面的命令后,kubectl get nodes 不报错了,输出如下

    NAME          STATUS    ROLES                  AGE         VERSION
    k8s-master0   Ready     control-plane,master   373d        v1.20.2
                  Unknown   <none>                 <unknown>   
    

    kubectl get node kube-master0 -o yaml 输出如下

    apiVersion: v1
    kind: Node
    metadata:
      creationTimestamp: null
      resourceVersion: "146719967"
    spec: {}
    status:
      daemonEndpoints:
        kubeletEndpoint:
          Port: 0
      nodeInfo:
        architecture: ""
        bootID: ""
        containerRuntimeVersion: ""
        kernelVersion: ""
        kubeProxyVersion: ""
        kubeletVersion: ""
        machineID: ""
        operatingSystem: ""
        osImage: ""
        systemUUID: ""
    

     

     转自:https://www.h5w3.com/105335.html

  • 相关阅读:
    面对祖传屎山代码应该采用的5个正确姿势
    一行代码卖出570美元, 天价代码的内幕
    漫画 | 悲催的中国式软件开发
    看看我每天的工作,你们这些程序员都是“辣鸡”!
    漫画 | 浏览器一个比一个“无耻”
    程序员应该造的五大轮子
    我所尊敬的三位女程序员
    重磅!七国首脑会议决定制裁Go语言!
    漫画 | C语言哭了,过年回家,只有我还没对象
    漫画 | CPU战争40年,真正的王者终于现身!
  • 原文地址:https://www.cnblogs.com/javalinux/p/14664191.html
Copyright © 2011-2022 走看看