This section will cover how to deploy a Controller in a bare-metal environment.

For The official documentation is already well-prepared for public cloud environments. If you are not deploying in a bare-metal environment, Please refer to https://ubuntu.com/kubernetes/docs for more information.

Install Juju

Juju is a tool that helps automate the deployment, configuration, and management of applications in cloud environments. It makes it easier to manage multiple applications and their interactions within the cloud.

sudo snap install juju --channel=2.9 --classic

Setting up password-less login

Generate SSH keys:

ssh-keygen

Copy the generated SSH keys to the specified address

Replace "ares@100.64.1.81" with the actual username and IP address. The following steps will continue in the same manner. There will be no further prompts.

ssh-copy-id ares@100.64.1.81

Create a Cloud

Since we are not generating the nodes to be deployed via a cloud environment or infrastructure API, please enter "manual" here.

You can give a name to your private cloud. I'll use "ares-homelab" here.

juju add-cloud

This operation can be applied to both a copy on this client and to the one on a controller.
No current controller was detected and there are no registered controllers on this client: either bootstrap one or register one.
Cloud Types
  lxd
  maas
  manual
  openstack
  vsphere

Select cloud type: manual

Enter a name for your manual cloud: ares-homelab

Enter the ssh connection string for controller, username@<hostname or IP> or <hostname or IP>: ares@100.64.1.81

Cloud "ares-homelab" successfully added to your local client.

Bootstrap a Controller

The Juju controller is used to manage the software deployed through Juju, from deployment to upgrades to day-two operations. One Juju controller can manage multiple projects or workspaces, which in Juju are known as ‘models’.

You can give a name to your Controller. I'll use "infra-demo" here.

juju bootstrap ares-homelab infra-demo --no-gui

Enable Controller HA

In a production environment, it is recommended to deploy the Controller in high-availability (HA) mode, with a suggested number of 3 or 5 nodes. If you are only testing, this step can be skipped.

Enabling HA requires a minimum of three nodes

ssh-copy-id ares@100.64.1.82
ssh-copy-id ares@100.64.1.83
juju add-machine -m controller ssh:ares@100.64.1.82
juju add-machine -m controller ssh:ares@100.64.1.83
juju machines -m controller
juju enable-ha --to=1,2
juju controllers --refresh
转载请注明出处