Kubernetes 使用Ansible创建kubeadm令牌
我正在裸机上运行Kubernetes群集,我正在编写一个Ansible任务,以从主节点获取join命令:Kubernetes 使用Ansible创建kubeadm令牌,kubernetes,ansible,Kubernetes,Ansible,我正在裸机上运行Kubernetes群集,我正在编写一个Ansible任务,以从主节点获取join命令: - name: Get join command from master shell: kubeadm token create --print-join-command when: role == "master" run_once: true register: join_command 当我运行playbook时,我得到了以下错误:“在5次尝试之后无法创建引导令牌[]
- name: Get join command from master
shell: kubeadm token create --print-join-command
when: role == "master"
run_once: true
register: join_command
当我运行playbook时,我得到了以下错误:“在5次尝试之后无法创建引导令牌[]”
如果我直接在主主机上运行完全相同的命令(kubeadm-token-create--print-join命令
),或远程使用ssh-kube-master-kubeadm-token-create--print-join命令
),它将正确输出join命令
我已经没有选择了。。。有什么想法吗?如果您的“kubeadm”无法使用配置文件中的凭据连接到Kubernetes群集,则会出现该错误。您可以通过停止主节点上的
docker
服务来复制它
在您的案例中,使用Ansible或shell运行命令没有区别,因此它应该可以工作
因此,我唯一能提出的建议是:
主机
是否已连接到正确的主机kubeadm
配置,其默认路径为/etc/kubernetes/admin.conf
,并确保配置正确。您可以尝试使用been:true
选项以root用户身份运行该命令ansible playbook中设置了代理配置:
---
- hosts: [vmsk8s]
roles:
- vmsk8s
environment:
http_proxy: http://10.0.0.1:3128
https_proxy: http://10.0.0.1:3128
删除代理环境变量修复了问题。在我的例子中,
kubelet
没有运行,因为重新启动后服务器上有交换空间。Ansible和直接在服务器上运行的命令都不起作用。一旦我禁用了swap,这个命令在两个地方都能工作。