Deploy Kubernetes cluster
First published: Monday, August 25, 2025 | Last updated: Monday, August 25, 2025Deploy Kubernetes cluster using the SloopStash Chef starter-kit.
Previous: Deploy Docker swarm cluster |
Deploy and manage Kubernetes cluster using Chef
# Switch to SloopStash Chef starter-kit directory.
$ cd /opt/kickstart-chef
# Create Chef role.
$ knife role create kubernetes
{
"name":"kubernetes",
"description":"",
"json_class":"Chef::Role",
"default_attributes":{},
"override_attributes":{},
"chef_type":"role",
"run_list":[
"recipe[system::setup]",
"recipe[system::configure]",
"recipe[system::stop]",
"recipe[system::start]",
"recipe[docker::setup]",
"recipe[docker::configure]",
"recipe[docker::stop]",
"recipe[docker::start]",
"recipe[docker_cri::setup]",
"recipe[docker_cri::configure]",
"recipe[docker_cri::stop]",
"recipe[docker_cri::start]",
"recipe[kubernetes::setup]",
"recipe[kubernetes::configure]",
"recipe[kubernetes::stop]",
"recipe[kubernetes::start]"
],
"env_run_lists":{}
}
On-premise (VirtualBox)
# Switch to SloopStash Chef starter-kit directory.
$ cd /opt/kickstart-chef
# Bootstrap Chef nodes for Kubernetes master nodes.
$ knife bootstrap vagrant@192.168.101.61 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-mtr-1 -E sloopstash-${ENVIRONMENT}
$ knife bootstrap vagrant@192.168.101.62 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-mtr-2 -E sloopstash-${ENVIRONMENT}
# Bootstrap Chef nodes for Kubernetes worker nodes.
$ knife bootstrap vagrant@192.168.101.64 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-wkr-1 -E sloopstash-${ENVIRONMENT}
$ knife bootstrap vagrant@192.168.101.65 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-wkr-2 -E sloopstash-${ENVIRONMENT}
$ knife bootstrap vagrant@192.168.101.66 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-wkr-3 -E sloopstash-${ENVIRONMENT}
# Execute Chef role against Chef node.
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-mtr-1 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-mtr-2 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-wkr-1 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-wkr-2 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-wkr-3 'role[kubernetes]'
On-premise (VMware)
# Switch to SloopStash Chef starter-kit directory.
$ cd /opt/kickstart-chef
# Bootstrap Chef nodes for Kubernetes master nodes.
$ knife bootstrap vagrant@192.168.201.61 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-mtr-1 -E sloopstash-${ENVIRONMENT}
$ knife bootstrap vagrant@192.168.201.62 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-mtr-2 -E sloopstash-${ENVIRONMENT}
# Bootstrap Chef nodes for Kubernetes worker nodes.
$ knife bootstrap vagrant@192.168.201.64 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-wkr-1 -E sloopstash-${ENVIRONMENT}
$ knife bootstrap vagrant@192.168.201.65 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-wkr-2 -E sloopstash-${ENVIRONMENT}
$ knife bootstrap vagrant@192.168.201.66 -i secret/ssh/node -y -N sloopstash-${ENVIRONMENT}-k8s-wkr-3 -E sloopstash-${ENVIRONMENT}
# Execute Chef role against Chef node.
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-mtr-1 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-mtr-2 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-wkr-1 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-wkr-2 'role[kubernetes]'
$ knife node run_list add sloopstash-${ENVIRONMENT}-k8s-wkr-3 'role[kubernetes]'
Previous: Deploy Docker swarm cluster |