Deckhouse Platform for bare metal
Select the Deckhouse Platform revision
The recommended settings for a Deckhouse Platform Community Edition installation are generated below:
config.yml
— a file with the configuration needed to bootstrap the cluster. Contains the installer parameters, access parameters, and the initial cluster parameters.
Please pay attention to:
- highlighted parameters you must define.
- parameters you might want to change.
- The installation must be performed from a personal computer with SSH access to the node, the master node of the future cluster.
Create the config.yml
file.
# general cluster parameters (ClusterConfiguration)
# version of the Deckhouse API
apiVersion: deckhouse.io/v1
# type of the configuration section
kind: ClusterConfiguration
# type of the infrastructure: bare metal (Static) or Cloud (Cloud)
clusterType: Static
# address space of the cluster's Pods
podSubnetCIDR: 10.111.0.0/16
# address space of the cluster's services
serviceSubnetCIDR: 10.222.0.0/16
# Kubernetes version to install
kubernetesVersion: "1.23"
# cluster domain (used for local routing)
clusterDomain: "cluster.local"
---
# section for bootstrapping the Deckhouse cluster (InitConfiguration)
# version of the Deckhouse API
apiVersion: deckhouse.io/v1
# type of the configuration section
kind: InitConfiguration
# Deckhouse parameters
deckhouse:
# the release channel in use
releaseChannel: Stable
configOverrides:
global:
modules:
# template that will be used for system apps domains within the cluster
# e.g., Grafana for %s.example.com will be available as grafana.example.com
publicDomainTemplate: "%s.example.com"
# enable cni-flannel module
cniFlannelEnabled: true
# cni-flannel module settings
cniFlannel:
# flannel backend, available values are VXLAN (if your servers have L3 connectivity) and HostGW (for L2 networks)
# you might consider changing this
podNetworkMode: VXLAN
---
# section with the parameters of the bare metal cluster (StaticClusterConfiguration)
# version of the Deckhouse API
apiVersion: deckhouse.io/v1
# type of the configuration section
kind: StaticClusterConfiguration
# list of internal cluster networks (e.g., '10.0.4.0/24'), which is
# used for linking Kubernetes components (kube-apiserver, kubelet etc.)
# if every node in cluster has only one network interface
# StaticClusterConfiguration resource can be skipped.
internalNetworkCIDRs:
- *!CHANGE_internalNetworkCIDRs*
Enter license key
Have no key?
The recommended settings for a Deckhouse Platform Enterprise Edition installation are generated below:
config.yml
— a file with the configuration needed to bootstrap the cluster. Contains the installer parameters, access parameters, and the initial cluster parameters.
Please pay attention to:
- highlighted parameters you must define.
- parameters you might want to change.
- The installation must be performed from a personal computer with SSH access to the node, the master node of the future cluster.
Create the config.yml
file.
# general cluster parameters (ClusterConfiguration)
# version of the Deckhouse API
apiVersion: deckhouse.io/v1
# type of the configuration section
kind: ClusterConfiguration
# type of the infrastructure: bare metal (Static) or Cloud (Cloud)
clusterType: Static
# address space of the cluster's Pods
podSubnetCIDR: 10.111.0.0/16
# address space of the cluster's services
serviceSubnetCIDR: 10.222.0.0/16
# Kubernetes version to install
kubernetesVersion: "1.23"
# cluster domain (used for local routing)
clusterDomain: "cluster.local"
---
# section for bootstrapping the Deckhouse cluster (InitConfiguration)
# version of the Deckhouse API
apiVersion: deckhouse.io/v1
# type of the configuration section
kind: InitConfiguration
# Deckhouse parameters
deckhouse:
# address of the Docker registry where the Deckhouse images are located
imagesRepo: registry.deckhouse.io/deckhouse/ee
# a special string with your token to access Docker registry (generated automatically for your license token)
registryDockerCfg: <YOUR_ACCESS_STRING_IS_HERE>
# the release channel in use
releaseChannel: Stable
configOverrides:
global:
modules:
# template that will be used for system apps domains within the cluster
# e.g., Grafana for %s.example.com will be available as grafana.example.com
publicDomainTemplate: "%s.example.com"
# enable cni-flannel module
cniFlannelEnabled: true
# cni-flannel module settings
cniFlannel:
# flannel backend, available values are VXLAN (if your servers have L3 connectivity) and HostGW (for L2 networks)
# you might consider changing this
podNetworkMode: VXLAN
---
# section with the parameters of the bare metal cluster (StaticClusterConfiguration)
# version of the Deckhouse API
apiVersion: deckhouse.io/v1
# type of the configuration section
kind: StaticClusterConfiguration
# list of internal cluster networks (e.g., '10.0.4.0/24'), which is
# used for linking Kubernetes components (kube-apiserver, kubelet etc.)
# if every node in cluster has only one network interface
# StaticClusterConfiguration resource can be skipped.
internalNetworkCIDRs:
- *!CHANGE_internalNetworkCIDRs*
Use a Docker image to install the Deckhouse Platform. It is necessary to transfer configuration files to the container as well as SSH keys for accessing the master node (further, it is assumed that the SSH key ~/.ssh/id_rsa
is used).
Run the installer on the personal computer.
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ce/install:stable bash
docker run --pull=always -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ce/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"
Now, to initiate the process of installation, you need to execute inside the container:
dhctl bootstrap --ssh-user=<username> --ssh-host=<master_ip> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \
--config=/config.yml \
--ask-become-pass
The --ssh-user
parameter here refers to the user that generated the SSH key. If a password is required to run sudo on the server, then specify it in response to the request [sudo] Password:
.
The installation process may take about 15-30 minutes with a good connection.
After the installation is complete, the installer will output the IP of the master node (you will need it further). Example output:
...
┌ 🎈 ~ Common: Kubernetes Master Node addresses for SSH
│ cloud-demo-master-0 | ssh ubuntu@1.2.3.4
└ 🎈 ~ Common: Kubernetes Master Node addresses for SSH (0.00 seconds)
Almost everything is ready for a fully-fledged Deckhouse Platform to work!
Use a Docker image to install the Deckhouse Platform. It is necessary to transfer configuration files to the container as well as SSH keys for accessing the master node (further, it is assumed that the SSH key ~/.ssh/id_rsa
is used).
Run the installer on the personal computer.
echo <LICENSE_TOKEN> | docker login -u license-token --password-stdin registry.deckhouse.io
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ee/install:stable bash
Log in on the personal computer to the container image registry by providing the license key as a password:
docker login -u license-token registry.deckhouse.io
Run a container with the installer:
docker run --pull=always -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"
Now, to initiate the process of installation, you need to execute inside the container:
dhctl bootstrap --ssh-user=<username> --ssh-host=<master_ip> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \
--config=/config.yml \
--ask-become-pass
The --ssh-user
parameter here refers to the user that generated the SSH key. If a password is required to run sudo on the server, then specify it in response to the request [sudo] Password:
.
The installation process may take about 15-30 minutes with a good connection.
After the installation is complete, the installer will output the IP of the master node (you will need it further). Example output:
...
┌ 🎈 ~ Common: Kubernetes Master Node addresses for SSH
│ cloud-demo-master-0 | ssh ubuntu@1.2.3.4
└ 🎈 ~ Common: Kubernetes Master Node addresses for SSH (0.00 seconds)
Almost everything is ready for a fully-fledged Deckhouse Platform to work!