The ansible playbooks are able to deploy a kubernetes cluster with Linux and Windows minion nodes.
Minimum required ansible version is 2.4.2.0
. The recommended version is 2.7.2
.
For Linux: Make sure that you are able to SSH into the target nodes without being asked for the password. You can read more here.
For Windows: Follow this guide to setup the node to be used with ansible.
To verify the setup and that ansible has been successfully configured you can run the following:
ansible -m setup all
This will connect to the target hosts and will gather host facts. If the command succeeds and everything is green, you're good to go with running the playbook.
Make sure to update first the inventory with details about the nodes.
To start the playbook, please run the following:
ansible-playbook kubernetes-cluster.yml
Currently supported Linux nodes:
- Ubuntu 14.04 and 16.04
Currently supported Windows nodes:
- Windows Server 2016 build version 1709 (OS Version 10.0.16299.0)
- Windows Server 2016 build version 1803 (OS Version 10.0.17134.0)
- Windows Server 2019 LTSC and build version 1809 (OS Version 10.0.17763.0)
The following ports need to be opened if we access the cluster machines via the public address.
- Kubernetes service ports (deployment specific): UDP and TCP
30000 - 32767
- Kubelet (default port): TCP
10250
- Kubernetes API: TCP
8080
for HTTP and TCP443
for HTTPS
- WinRM via HTTPS: TCP
5986
(for HTTP also TCP5985
) - SSH: TCP
22
- OVN Northbound (NB): TCP
6641
- OVN Southbound (SB): TCP
6642
- GENEVE encapsulation (used by default): UDP
6081
- STT encapsulation (optional encapsulation type, no special NIC required): TCP
7471
- Windows RDP Port: 3389 (TCP)
- ICMP: useful for debugging
-
Support for hybrid cluster with master/minion nodes on different cloud providers.
-
Different Linux versions support (currently only Ubuntu 14.04 and 16.04 supported)
- Windows containers do not support IPv6 at the moment. You can read more here