Requirements
The follow are requirements for running Talos in Docker:- Docker 18.03 or greater
- a recent version of
talosctl
If you are using Docker Desktop on a macOS computer, and you encounter the error:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
You may need to manually create the link for the Docker socket:
sudo ln -s "$HOME/.docker/run/docker.sock" /var/run/docker.sock
.Caveats
Due to the fact that Talos will be running in a container, certain APIs are not available. For exampleupgrade
, reset
, and similar APIs donβt apply in container mode.
Further, when running on a Mac in docker, due to networking limitations, VIPs are not supported.
Create the Cluster
Creating a local cluster is as simple as:talosconfig
(~/.talos/config
) and kubeconfig
(~/.kube/config
) will be configured to point to the new cluster.
Note: Startup times can take up to a minute or more before the cluster is available.Finally, we just need to specify which nodes you want to communicate with using
talosctl
.
Talosctl can operate on one or all the nodes in the cluster β this makes cluster wide commands much easier.
talosctl config nodes 10.5.0.2 10.5.0.3
Talos and Kubernetes API are mapped to a random port on the host machine, the retrieved talosconfig
and kubeconfig
are configured automatically to point to the new cluster.
Talos API endpoint can be found using talosctl config info
:
talosctl cluster show
:
Note: When running Kubernetes with Flannel inside Docker, you may encounter this error:Failed to check br_netfilter: stat /proc/sys/net/bridge/bridge-nf-call-iptables: no such file or directory
This happens because the host Linux kernel does not have thebr_netfilter
module enabled. To resolve this, load the module by running
Using the Cluster
Once the cluster is available, you can make use oftalosctl
and kubectl
to interact with the cluster.
For example, to view current running containers, run talosctl containers
for a list of containers in the system
namespace, or talosctl containers -k
for the k8s.io
namespace.
To view the logs of a container, use talosctl logs <container>
or talosctl logs -k <container>
.
Cleaning Up
To cleanup, run:Multiple Clusters
Multiple Talos Linux cluster can be created on the same host, each cluster will need to have:- a unique name (default is
talos-default
) - a unique network CIDR (default is
10.5.0.0/24
)
--context
flag:
Running Talos in Docker Manually
To run Talos in a container manually, run: The machine configuration submitted to the container should have a host DNS feature enabled withforwardKubeDNSToHost
enabled.
It is used to forward DNS requests to the resolver provided by Docker (or other container runtime).