前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubeadm join原理

kubeadm join原理

作者头像
禹都一只猫olei
发布2018-11-09 15:38:14
2.1K0
发布2018-11-09 15:38:14
举报

前言《举例》

  • join:将node加入集群

join的命令

代码语言:javascript
复制
$  kubeadm join xxxxxx:6443 --token a5gkfo.f1p9gsu68rxi14vx --discovery-token-ca-cert-hash sha256:9b826ab9655ae79c6398625b2cd52315d4f07bdae23d9d61604f29551757f328

join前检查

  • discovery-token-ca-cert-hash : 用于Node验证Master身份

  • 根据CA的公钥证书数据来计算出hash
代码语言:javascript
复制
$ openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform DER 2>/dev/null | sha256sum | cut -d' ' -f1

这里的计算结果,跟join加入的discovery-token-ca-cert-hash后面接的结果是一样的,一致就可以说加入正确

  • token:用于Master验证Node身份

主要是在/etc/kubernetes/manifests/kube-apiserver.yaml中的--enable-bootstrap-token-auth=true设置了为true

  • token格式由两段组成,token-id.token-serect,查看有前缀的secret对象
代码语言:javascript
复制
$ kubectl get secret -n kube-system | grep bootstrap
----------------------
bootstrap-token-a5gkfo                           bootstrap.kubernetes.io/token         7         11d

  • 查看secret对象的具体内容
代码语言:javascript
复制
$ kubectl get secret/bootstrap-token-a5gkfo -n kube-system -o yaml
-----------------------
apiVersion: v1
data:
  auth-extra-groups: c3lzdGVtOmJvb3RzdHJhcHBlcnM6a3ViZWFkbTpkZWZhdWx0LW5vZGUtdG9rZW4=
  description: VGhlIGRlZmF1bHQgYm9vdHN0cmFwIHRva2VuIGdlbmVyYXRlZCBieSAna3ViZWFkbSBpbml0Jy4=
  expiration: MjAxOC0xMC0xM1QxMToxOToxOSswODowMA==
  token-id: YTVna2Zv
  token-secret: ZjFwOWdzdTY4cnhpMTR2eA==
  usage-bootstrap-authentication: dHJ1ZQ==
  usage-bootstrap-signing: dHJ1ZQ==
kind: Secret
metadata:
  creationTimestamp: 2018-10-12T03:19:19Z
  name: bootstrap-token-a5gkfo
  namespace: kube-system
  resourceVersion: "181"
  selfLink: /api/v1/namespaces/kube-system/secrets/bootstrap-token-a5gkfo
  uid: 9b3d556f-cdcd-11e8-9354-fa163e47331c
type: bootstrap.kubernetes.io/token

可以看到token-secret是一个base64编码的字符串,我们解码

代码语言:javascript
复制
$ echo ZjFwOWdzdTY4cnhpMTR2eA== | base64 -d
---------------------
f1p9gsu68rxi14vx

Bingo!

ParadigmSDKv3.init('f31e45e6e4a54a2ba32539ef6053b7ad',{ isDisableArticleFetch: true });ParadigmSDKv3.renderArticle('paradigm_render_content_append_id_1038',548,1038);

本文作者为olei,转载请注明。

kubernetes

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言《举例》
  • join前检查
  • Bingo!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档