• 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值一致。

  • 相关阅读:
    Dynamics CRM安装教程一:域环境准备
    C#判断日期是否合法
    Visual Studio 2015 无法加载.Net FrameWork4.6.2
    Dynamics CRM产生公共签名,避免每次插件换环境重新输入签名密钥账号密码
    Dynamics CRM使用JS隐藏自定义按钮
    <3>Python开发——列表(list)
    <2>Python开发——字符串(str)
    <1>Python开发——基础入门
    Sed命令详解
    国内搭建Minikube测试环境
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/12626783.html
Copyright © 2020-2023  润新知