需求:
一共有33台主机需要纳管到集群中,需要给每台主机拷贝Kubelet和proxy文件,但是这两个文件内都有一个参数需要修改成自己本机的ip地址。不可能到这30多台主机上一台一台去修改,那太累了。效率还低。
这时候想到了ansible的j2模板,然后在使用他内置的setup模块就可以了
实现步骤:
1.先写一个j2文件,里面ip的参数写成系统自带的参数。
cat kubelet.j2
kubernetes kubelet (minion) config
KUBELET_ARGS="–root-dir=/apps/kubernetes --v=0 --pod-infra-container-image=10.248.xx.xxx:xxxx/google_containers/pause:3.1
–kubeconfig=/etc/kubernetes/kubeconfig --runtime-cgroups=/systemd/system.slice
–hostname-override={
{ansible_eth0.ipv4.address}} --logtostderr=false --log-dir=/apps/log/kubernetes
–config=/etc/kubernetes/kubelet.config --network-plugin=cni"
2.编写yaml文件
- name: config myhosts
hosts: cmiot
tasks:- template:
src: /etc/ansible/kubelet.j2
dest: /etc/kubernetes/kubelet
- template:
3.执行ansibe-play replicas_kubelet.yaml