需求:
一共有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
3.执行ansibe-play replicas_kubelet.yaml
4.kube-proxy使用同样的步骤执行即可。