zoukankan      html  css  js  c++  java
  • kubeadm join

    kubeadm join用于将当前的节点加入到kubelet集群当中去。

    kubeadm join 148.70.251.10:6443 --token nh819o.pzcpohatm7p3a5cm --discovery-token-ca-cert-hash sha256:55254659ea80b335a09dd627757d6aecd10b2c6fbdaddc63dd9bae9ec353cc49

    --discovery-token-ca-cert-hash:用于Node验证master身份。
    执行join时,API Server会下发ca.crt,这个证书会被node存放在/etc/kubernetes/pki目录下。
    然后kubeadm join再用ca设置公钥证书的hash值,与discovery-token-ca-cert-hash的值进行比对。
    确定是否为正确的master。可以通过以下方法计算hash值。

    ubuntu@VM-0-3-ubuntu:~$ openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform DER 2>/dev/null | sha256sum | cut -d' ' -f1
    55254659ea80b335a09dd627757d6aecd10b2c6fbdaddc63dd9bae9ec353cc49

    --token:用于Master验证Node身份。
    要想集群首次引导启动时,支持bootstrap-token验证,APIServer需要开启下面的配置选项:
      --enable-bootstrap-token-auth=true  

    root@VM-16-6-ubuntu:/etc/kubernetes/manifests# kubectl get secret -n kube-system|grep bootstrap-token
    bootstrap-token-nh819o                           bootstrap.kubernetes.io/token         7         2d

    nh819o是token的id。pzcpohatm7p3a5cm是secret。
    当kubeadm join访问APIServer,会在请求的header中携带这一token。APIServer会根据token进行身份验证。
    API会查询是否有bootstrap-token的前缀的secret对象。
    我们可以查看secret对象的内容。

    root@VM-16-6-ubuntu:~# kubectl get secret/bootstrap-token-nh819o -n kube-system -o yamlapiVersion: v1
    data:
      auth-extra-groups: c3lzdGVtOmJvb3RzdHJhcHBlcnM6a3ViZWFkbTpkZWZhdWx0LW5vZGUtdG9rZW4=
      description: VGhlIGRlZmF1bHQgYm9vdHN0cmFwIHRva2VuIGdlbmVyYXRlZCBieSAna3ViZWFkbSBpbml0Jy4=
      expiration: MjAxOS0wNi0yMFQxMToyNDoyOCswODowMA==
      token-id: bmg4MTlv
      token-secret: cHpjcG9oYXRtN3AzYTVjbQ==
      usage-bootstrap-authentication: dHJ1ZQ==
      usage-bootstrap-signing: dHJ1ZQ==
    kind: Secret
    metadata:
      creationTimestamp: 2019-06-19T03:24:28Z
      name: bootstrap-token-nh819o
      namespace: kube-system
      resourceVersion: "160"
      selfLink: /api/v1/namespaces/kube-system/secrets/bootstrap-token-nh819o
      uid: bea32cfa-9241-11e9-a613-52540095a842
    type: bootstrap.kubernetes.io/token

    对token-secret进行解码:

    root@VM-16-6-ubuntu:~# echo cHpjcG9oYXRtN3AzYTVjbQ==|base64 -d
    pzcpohatm7p3a5cm

    这个与token参数的secret值一致。

  • 相关阅读:
    C#实现Dll(OCX)控件自动注册的两种方法 网上找的 然后 自己试了试 还是可以用的
    XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
    vs2015 企业版 专业版 密钥
    C#调用 ICSharpCode.SharpZipLib.Zip 实现解压缩功能公用类
    apicloud 资料
    七夕之日
    APP注意事项
    avalon调试接口的弹出
    avalon列表循环调接口以及更多例子
    avalon单个列表调接口例子
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/12626783.html
Copyright © 2011-2022 走看看