Derzeit läuft mein Kubernetescluster in einem Satz von VMs, auf denen Rancher OS läuft. Rancher OS hat die angenehme Eigenschaft, daß es sich mit Cloud-Init einstellen läßt, so daß die gesamte Konfiguration außerhalb der VM in einer Datei aufbewahrt werden kann.
Cloud-Init zu verwenden, um Rancher OS zu konfigurieren, ist nicht schwer. Zuerst machen wir uns einen Ordner mit dem richtigen Namen (nämlich cloud-init/openstack/latest
) und erstellen darin eine Datei namens meta_data.json
:
/vm/kubeia-master-2$ cat cloud-init/openstack/latest/meta_data.json { "dsmode": "local", "network_config": {}, "hostname": "kubeia-master-2" }
Dann können wir die Datei mit der eigentlichen Konfiguration anlegen. Sie ist im YAML-Format und heißt user_data
:
/vm/kubeia-master-2$ cat cloud-init/openstack/latest/user_data #cloud-config rancher: resize_device: /dev/vda system_docker: storage_driver: overlay2 docker: storage_driver: overlay2 network: dns: nameservers: - 10.1.1.1 - 2a01:4f8:222:244::1:1:1 search: - local interfaces: eth0: addresses: - 10.1.1.20/22 - 2a01:4f8:222:244::1:1:20/110 gateway: 10.1.1.1 gateway_ipv6: 2a01:4f8:222:244::1:1:1 dhcp: false services: user-volumes: volumes: - /home:/home - /opt:/opt - /var/lib/kubelet:/var/lib/kubelet - /var/lib/etcd:/var/lib/etcd - /etc/kubernetes:/etc/kubernetes sysctl: vm.max_map_count: 262144 ssh_authorized_keys: - ssh-ed25519 ... mulk@ilmenblatt - ssh-ed25519 ... rancher@kubeia-master-2
Die Verzeichnisstruktur mit den beiden Dateien packen wir ein ISO-Abbild mit dem Namen „config-2“. genisoimage eignet sich dafür gut:
/vm/kubeia-master-2$ genisoimage -o cloud-init.iso -V config-2 -r -J cloud-init
In unserer VM binden wir die ISO-Datei als CD-Laufwerk ein (hier als Beispiel in Form einer Konfigurationsdatei für vm-bhyve):
/vm/kubeia-master-2$ cat kubeia-master-2.conf # ... some detail omitted ... disk0_type="virtio-blk" disk0_name="disk0" disk0_dev="sparse-zvol" disk1_type="ahci-cd" disk1_name="/vm/kubeia-master-2/cloud-init.iso" disk1_dev="custom" # ... some detail omitted ... loader="grub" grub_install0="linux /boot/vmlinuz-4.9.80-rancher rancheros-v1.3.0 console=ttyS0 rancher.autologin=ttyS0 printk.devkmsg=on panic=10" grub_install1="initrd /boot/initrd-v1.3.0" grub_run0="linux /boot/vmlinuz-4.9.80-rancher rancheros-v1.3.0 printk.devkmsg=on console=ttyS0 rancher.autologin=ttyS0 rancher.state.dev=LABEL=RANCHER_STATE rancher.state.wait panic=10 " grub_run1="initrd /boot/initrd-v1.3.0"
Und das sollte es tun.
Comments
Submit a comment
Note: This website uses a JavaScript-based spam prevention system. Please enable JavaScript in your browser to post comments. Comment format is plain text. Use blank lines to separate paragraphs.