Skip to content

Commit 835920f

Browse files
author
Dario Tranchitella
committed
WIP on Worker nodes join
1 parent eb7d8be commit 835920f

File tree

5 files changed

+139
-0
lines changed

5 files changed

+139
-0
lines changed

roles/worker-nodes-bootstrap/tasks/main.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@
4343
- kubectl
4444
- kube-proxy
4545

46+
- name: Installing containerd
47+
uri:
48+
force: yes
49+
url: https://github.com/containerd/cri-containerd/releases/download/v1.0.0-beta.1/cri-containerd-1.0.0-beta.1.linux-amd64.tar.gz
50+
dest: "/tmp/cri-containerd-1.0.0-beta.1.linux-amd64.tar.gz"
51+
status_code: 200,304
52+
4653
- name: Installing runc binary
4754
uri:
4855
force: yes
@@ -83,6 +90,12 @@
8390
src: "/tmp/cni-plugins-amd64-v0.6.0.tgz"
8491
dest: /opt/cni/bin/
8592

93+
- name: Unzipping containerd
94+
unarchive:
95+
remote_src: yes
96+
src: "/tmp/cri-containerd-1.0.0-beta.1.linux-amd64.tar.gz"
97+
dest: /
98+
8699
- name: Unzipping CRI-O
87100
unarchive:
88101
remote_src: yes
@@ -119,3 +132,64 @@
119132
with_items:
120133
- conmon
121134
- pause
135+
136+
- name: Configure CNI Networking
137+
template:
138+
src: "{{ item }}.j2"
139+
dest: "/etc/cni/net.d/{{ item }}"
140+
with_items:
141+
- 10-bridge.conf
142+
- 99-loopback.conf
143+
144+
- name: "Configure the Kubelet: CA"
145+
copy:
146+
remote_src: yes
147+
src: "/home/{{ ansible_user }}/ca.pem"
148+
dest: "/var/lib/kubernetes/ca.pem"
149+
150+
- name: "Configure the Kubelet: worker key"
151+
copy:
152+
remote_src: yes
153+
src: "/home/{{ ansible_user }}/{{ item }}"
154+
dest: "/var/lib/kubelet/{{ item }}"
155+
with_items:
156+
- "{{ ansible_hostname }}-key.pem"
157+
- "{{ ansible_hostname }}.pem"
158+
159+
- name: "Configure the Kubelet: kubeconfig"
160+
copy:
161+
remote_src: yes
162+
src: "/home/{{ ansible_user }}/{{ ansible_hostname }}.kubeconfig"
163+
dest: /var/lib/kubelet/kubeconfig
164+
165+
- name: Setting up `Kubelet` systemd unit
166+
template:
167+
src: kubelet.service.j2
168+
dest: /etc/systemd/system/kubelet.service
169+
170+
- name: "Configure the Kubernetes Proxy"
171+
copy:
172+
remote_src: yes
173+
src: "/home/{{ ansible_user }}/kube-proxy.kubeconfig"
174+
dest: "/var/lib/kube-proxy/kubeconfig"
175+
176+
- name: Setting up `kube-proxy` systemd unit
177+
template:
178+
src: kube-proxy.service.j2
179+
dest: /etc/systemd/system/kube-proxy.service
180+
181+
- name: Starting services
182+
systemd:
183+
daemon_reload: yes
184+
name: "{{ item }}"
185+
enabled: yes
186+
state: started
187+
with_items:
188+
- containerd
189+
- cri-containerd
190+
- kubelet
191+
- kube-proxy
192+
193+
- name: Verification
194+
shell: |
195+
kubectl get nodes
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"cniVersion": "0.3.1",
3+
"name": "bridge",
4+
"type": "bridge",
5+
"bridge": "cnio0",
6+
"isGateway": true,
7+
"ipMasq": true,
8+
"ipam": {
9+
"type": "host-local",
10+
"ranges": [
11+
[{"subnet": "10.0.{{ play_hosts.index(inventory_hostname) }}.0/24"}]
12+
],
13+
"routes": [{"dst": "0.0.0.0/0"}]
14+
}
15+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"cniVersion": "0.3.1",
3+
"type": "loopback"
4+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[Unit]
2+
Description=Kubernetes Kube Proxy
3+
Documentation=https://github.com/kubernetes/kubernetes
4+
5+
[Service]
6+
ExecStart=/bin/kube-proxy \
7+
--cluster-cidr=10.200.0.0/16 \
8+
--kubeconfig=/var/lib/kube-proxy/kubeconfig \
9+
--proxy-mode=iptables \
10+
--v=2
11+
Restart=on-failure
12+
RestartSec=5
13+
14+
[Install]
15+
WantedBy=multi-user.target
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[Unit]
2+
Description=Kubernetes Kubelet
3+
Documentation=https://github.com/kubernetes/kubernetes
4+
After=cri-containerd.service
5+
Requires=cri-containerd.service
6+
7+
[Service]
8+
ExecStart=/bin/kubelet \
9+
--allow-privileged=true \
10+
--anonymous-auth=false \
11+
--authorization-mode=Webhook \
12+
--client-ca-file=/var/lib/kubernetes/ca.pem \
13+
--cloud-provider= \
14+
--cluster-dns=10.32.0.10 \
15+
--cluster-domain=cluster.local \
16+
--container-runtime=remote \
17+
--container-runtime-endpoint=unix:///var/run/cri-containerd.sock \
18+
--image-pull-progress-deadline=2m \
19+
--kubeconfig=/var/lib/kubelet/kubeconfig \
20+
--network-plugin=cni \
21+
--pod-cidr=10.0.{{ play_hosts.index(inventory_hostname) }}.0/24 \
22+
--register-node=true \
23+
--runtime-request-timeout=15m \
24+
--tls-cert-file=/var/lib/kubelet/{{ ansible_hostname }}.pem \
25+
--tls-private-key-file=/var/lib/kubelet/{{ ansible_hostname }}-key.pem \
26+
--v=2
27+
Restart=on-failure
28+
RestartSec=5
29+
30+
[Install]
31+
WantedBy=multi-user.target

0 commit comments

Comments
 (0)