Caution
Kubernetes support termination notice
Starting with the MCP 2019.2.5 update, the Kubernetes component is no longer supported as a part of the MCP product. This implies that Kubernetes is not tested and not shipped as an MCP component. Although the Kubernetes Salt formula is available in the community driven SaltStack formulas ecosystem, Mirantis takes no responsibility for its maintenance.
Customers looking for a Kubernetes distribution and Kubernetes lifecycle management tools are encouraged to evaluate the Mirantis Kubernetes-as-a-Service (KaaS) and Docker Enterprise products.
If the Kubernetes Master node became non-operational and recovery is not possible, you can reprovision the node from scratch.
When reprovisioning a node, you can not update some of the configuration data:
You can change the following information:
Caution
All Master nodes must serve the same apiserver
certificate. Otherwise, service tokens will become
invalidated.
To reprovision the Kubernetes Master node:
Verify that MAAS works properly and provides the DHCP service to assign an IP address and bootstrap an instance.
Verify that the target nodes have connectivity with the Salt Master node:
salt 'ctl[<NUM>]*' test.ping
Update modules and states on the new Minion of the Salt Master node:
salt 'ctl[<NUM>]*' saltutil.sync_all
Note
The ctl[<NUM>]
parameter is the ID of a failed Kubernetes
Master node.
Create and distribute SSL certificates for services using the salt state:
salt 'ctl[<NUM>]*' state.sls salt
Install Keepalived:
salt 'ctl[<NUM>]*' state.sls keepalived -b 1
Install HAProxy and verify its status:
salt 'ctl[<NUM>]*' state.sls haproxy
salt 'ctl[<NUM>]*' service.status haproxy
Install etcd and verify the cluster health:
salt 'ctl[<NUM>]*' state.sls etcd.server.service
salt 'ctl[<NUM>]*' cmd.run "etcdctl cluster-health"
Install etcd with the SSL support:
salt 'ctl[<NUM>]*' state.sls salt.minion.cert,etcd.server.service
salt 'ctl[<NUM>]*' cmd.run '. /var/lib/etcd/configenv && etcdctl cluster-health'
Install Kubernetes:
salt 'ctl[<NUM>]*' state.sls kubernetes.master.kube-addons
salt 'ctl[<NUM>]*' state.sls kubernetes.pool
Set up NAT for Calico:
salt 'ctl[<NUM>]*' state.sls etcd.server.setup
Run master to check consistency:
salt 'ctl[<NUM>]*' state.sls kubernetes exclude=kubernetes.master.setup
Register add-ons:
salt 'ctl[<NUM>]*' --subset 1 state.sls kubernetes.master.setup