kubernetes: Manage worker nodes
So far, I have been managing Kubernetes worker nodes with Fedora CoreOS Ignition, but I have decided to move everything back to Fedora and Ansible. I like the idea of an immutable operating system, but the FCOS implementation is not really what I want. I like the automated updates, but that can be accomplished with _dnf-automatic_. I do _not_ like giving up control of when to upgrade to the next Fedora release. Mostly, I never did come up with a good way to manage application-level configuration on FCOS machines. None of my experiments (Cue+tmpl, KCL+etcd+Luci) were successful, which mostly resulted in my manually managing configuration on nodes individually. Managing OS-level configuration is also rather cumbersome, since it requires redeploying the machine entirely. Altogether, I just don't think FCOS fits with my model of managing systems. This commit introduces a new playbook, `kubernetes.yml`, and a handful of new roles to manage Kubernetes worker nodes running Fedora Linux. It also adds two new deploy scripts, `k8s-worker.sh` and `k8s-longhorn.sh`, which fully automate the process of bringing up worker nodes.
This commit is contained in:
30
roles/k8s-worker/tasks/main.yml
Normal file
30
roles/k8s-worker/tasks/main.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
- name: stat /var/lib/kubelet/config.yaml
|
||||
stat:
|
||||
path: /var/lib/kubelet/config.yaml
|
||||
ignore_errors: true
|
||||
register: stat_kublet_config
|
||||
tags:
|
||||
- kubeadm-join
|
||||
|
||||
- name: generate bootstrap token
|
||||
delegate_to: '{{ groups["k8s-controller"][0] }}'
|
||||
command:
|
||||
kubeadm token create
|
||||
--kubeconfig /etc/kubernetes/admin.conf
|
||||
--ttl 1h
|
||||
--print-join-command
|
||||
when:
|
||||
not stat_kublet_config.stat.exists
|
||||
changed_when: true
|
||||
register: kubeadm_token_create
|
||||
tags:
|
||||
- bootstrap-token
|
||||
- kubeadm-join
|
||||
- name: join the kubernetes cluster
|
||||
command: >-
|
||||
{{ kubeadm_token_create.stdout }}
|
||||
when:
|
||||
not stat_kublet_config.stat.exists
|
||||
changed_when: true
|
||||
tags:
|
||||
- kubeadm-join
|
||||
Reference in New Issue
Block a user