First identify a system from where you will perform administrative tasks, such as creating certificates, kubeconfig files and distributing them to the different VMs.
If you are on a Linux laptop, then your laptop could be this system. In my case I chose the master-1
node to perform administrative tasks. Whichever system you chose make sure that system is able to access all the provisioned VMs through SSH to copy files over.
Here we create an SSH key pair for the vagrant
user who we are logged in as. We will copy the public key of this pair to the other master and both workers to permit us to use password-less SSH (and SCP) go get from master-1
to these other nodes in the context of the vagrant
user which exists on all nodes.
Generate Key Pair on master-1
node
ssh-keygen
Leave all settings to default.
View the generated public key ID at:
cat ~/.ssh/id_rsa.pub
Add this key to the local authorized_keys (master-1
) as in some commands we scp to ourself
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Copy the output into a notepad and form it into the following command
cat >> ~/.ssh/authorized_keys <<EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...OUTPUT-FROM-ABOVE-COMMAND...8+08b vagrant@master-1
EOF
Now ssh to each of the other nodes and paste the above from your notepad at each command prompt.
The kubectl. command line utility is used to interact with the Kubernetes API Server. Download and install kubectl
from the official release binaries:
Reference: https://kubernetes.io/docs/tasks/tools/install-kubectl/
wget https://storage.googleapis.com/kubernetes-release/release/v1.24.3/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
Verify kubectl
version 1.24.3 or higher is installed:
kubectl version -o yaml
output
kubectl version -o yaml
clientVersion:
buildDate: "2022-07-13T14:30:46Z"
compiler: gc
gitCommit: aef86a93758dc3cb2c658dd9657ab4ad4afc21cb
gitTreeState: clean
gitVersion: v1.24.3
goVersion: go1.18.3
major: "1"
minor: "24"
platform: linux/amd64
kustomizeVersion: v4.5.4
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Don't worry about the error at the end as it is expected. We have not set anything up yet!
Prev: Compute Resources
Next: Certificate Authority