代码之家  ›  专栏  ›  技术社区  ›  pkaramol

kubeadm:显式设置要加入的节点的令牌

  •  1
  • pkaramol  · 技术社区  · 6 年前

    我已使用设置了主节点 kubeadm .

    现在我想运行 join 命令在我的节点上,以便以后加入集群。

    我要做的就是跑

    kubeadm join --token <token> --discovery-token-ca-cert-hash <sha256>
    

    在哪里? <token> 和是以前由以下命令返回的值:

    kubeadm init 
    

    我还试图编写上述过程的脚本,我发现解析最后一个命令中的实际令牌有点困难;

    所以我在徘徊,是否有一种方法可以明确说明 <令牌& GT; 以及 <sha256> 在集群初始化期间,为了避免对 init 命令。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Leandro Donizetti Soares    6 年前

    我也在为它写剧本。

    为了获得所需的值,我使用以下命令:

    TOKEN=$(sshpass -p $PASSWORD ssh  -o StrictHostKeyChecking=no root@$MASTER_IP sudo kubeadm token list | tail -1 | cut -f 1 -d " ") 
    
    
    HASH=$(sshpass -p $PASSWORD ssh  -o StrictHostKeyChecking=no  root@$MASTER_IP  openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' )
    

    基本上,我使用这个命令在master上进行ssh并获取这个值。

    我还没有找到一个更简单的方法来实现这一点。

        2
  •  0
  •   pkaramol    6 年前

    实际上,似乎有一种方法可以解决这个问题:

    (我把这个放进去 ansible 任务,因为这是我计划使用的地方)

      - name: kubernetes.yml --> Initiate kubernetes cluster
          shell: 'kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address={{ ansible_facts[if_name]["ipv4"]["address"] }}'
          become: yes
          when: inventory_hostname in groups['masters']
    
    
        - name: kubernetes.yml --> Get the join command
          shell: kubeadm token create --print-join-command
          register: rv_join_command
          when: inventory_hostname in (groups['masters'] | last)
          become: yes
    
        - name: kubernetes.yml --> Print the join command
          debug:
            var: rv_join_command.stdout
    

    输出:

    TASK [kubernetes.yml --> Print the join command] *******************************
    ok: [kubernetes-master-1] => 
      rv_join_command.stdout: 'kubeadm join 192.168.30.1:6443 --token ah0dbr.grxg9fke3c28dif3i     --discovery-token-ca-cert-hash sha256:716712ca7f07bfb4aa7df9a8b30ik3t0k3t2259b8c6fc7b68f50334356078 '
    
    推荐文章