-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
2 changed files
with
60 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
Registry HA | ||
=========== | ||
|
||
MetalK8s come with his own registry used to serve all images used by MetalK8s | ||
containers, so that it can run fully offline, this registry container sit on | ||
the Bootstrap node. | ||
|
||
Highly available registry allow to lose the Bootstrap node and still be able | ||
to schedule pods on nodes that need to pull some container images. So it | ||
means, lose of Bootstrap node should have no impact on the workload pods | ||
running in the cluster. | ||
|
||
.. note:: | ||
|
||
This procedure only talk about registry HA as Bootstrap HA is not | ||
supported for the moment, so it's only a part of the Bootstrap | ||
functionnaly. Check this ticket for more informations | ||
https://github.com/scality/metalk8s/issues/2002 | ||
|
||
Prepare the node | ||
---------------- | ||
|
||
In order to be able to schedule a repository pod on a node that will | ||
be used as registry, you need this node to be part of the MetalK8s | ||
cluster, no specific roles or taints is needed, this pods can be scheduled | ||
on any node. | ||
|
||
All ISOs listed in ``archives`` section of | ||
``/etc/metalk8s/bootstrap.yaml`` and of ``/etc/metalk8s/solutions.yaml`` | ||
from the Bootstrap node must be on the exact same place on the node | ||
that will be used as registry. | ||
|
||
Deploy the registry | ||
------------------- | ||
|
||
Connect on the node where you want to deploy this registry and run the | ||
following salt states | ||
|
||
.. parsed-literal:: | ||
root@node-1 $ salt-call state.sls \\ | ||
metalk8s.archives.mounted,metalk8s.solutions,metalk8s.repo.installed \\ | ||
saltenv=metalk8s-|version| | ||
Reconfigure all nodes | ||
--------------------- | ||
|
||
In order to have registry HA we need to reconfigure all containerd to | ||
use both registry as endpoint so that if one is down containerd | ||
automatically pull from the other registry. | ||
|
||
For this you need to run a state on all node using Salt Master | ||
|
||
.. parsed-literal:: | ||
root@bootstrap $ kubectl exec -n kube-system -c salt-master \\ | ||
--kubeconfig=/etc/kubernetes/admin.conf \\ | ||
salt-master-bootstrap -- salt '*' state.sls \\ | ||
metalk8s.container-engine saltenv=metalk8s-|version| |