1.kops is a software use to create production ready k8s cluster in a cloud provider like AWS.
-
kOPS SUPPORTS MULTIPLE CLOUD PROVIDERS
-
Kops compete with managed kubernestes services like EKS, AKS and GKE
-
Kops is cheaper than the others.
-
Kops create production ready K8S.
-
KOPS create resources like: LoadBalancers, ASG, Launch Configuration, woker node Master node (CONTROL PLANE.
-
KOPS is IaaC
#!/bin/bash
sudo adduser kops
sudo echo "kops ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/kops
sudo su - kops
sudo apt install awscli -y
#or
sudo apt update -y
sudo apt install unzip wget -y
sudo curl https://s3.amazonaws.com/aws-cli/awscli-bundle.zip -o awscli-bundle.zip
sudo apt install unzip python -y
sudo unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
#Install wget if not installed
sudo apt install wget -y
sudo wget https://github.com/kubernetes/kops/releases/download/v1.22.0/kops-linux-amd64
sudo chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops
sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
sudo chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
AmazonEC2FullAccess
AmazonS3FullAccess
IAMFullAccess
AmazonVPCFullAccess
Then Attach IAM role to ubuntu server from Console Select KOPS Server --> Actions --> Instance Settings --> Attach/Replace IAM Role --> Select the role which You Created. --> Save.
Execute the commands below in your KOPS control Server. use unique s3 bucket name. If you get bucket name exists error.
aws s3 mb s3://class29v
aws s3 ls
ex: s3://class29v
Expose environment variable:
# Add env variables in bashrc
vi .bashrc
# Give Unique Name And S3 Bucket which you created.
export NAME=class.k8s.local
export KOPS_STATE_STORE=s3://class29v
source .bashrc
ssh-keygen
kops create cluster --zones us-east-2c --networking weave --master-size t2.medium --master-count 1 --node-size t2.medium --node-count=2 ${NAME}
kops create secret --name ${NAME} sshpublickey admin -i ~/.ssh/id_rsa.pub
kops update cluster ${NAME} --yes
10) Validate your cluster(KOPS will take some time to create cluster ,Execute below commond after 3 or 4 mins)
kops validate cluster
Suggestions:
- validate cluster: kops validate cluster --wait 10m
- list nodes: kubectl get nodes --show-labels
- ssh to the master: ssh -i ~/.ssh/id_rsa [email protected]
- the ubuntu user is specific to Ubuntu. If not using Ubuntu please use the appropriate user based on your OS.
- read about installing addons at: https://kops.sigs.k8s.io/operations/addons.
sh -i ~/.ssh/id_rsa ubuntu@ipAddress
ssh -i ~/.ssh/id_rsa [email protected]
ssh -i ~/.ssh/id_rsa [email protected]
sudo sed -i "/^[^#]*PasswordAuthentication[[:space:]]no/c\PasswordAuthentication yes" /etc/ssh/sshd_config
sudo service sshd restart
sudo passwd ubuntu
kubectl get nodes
kops delete cluster --name=${NAME} --state=${KOPS_STATE_STORE} --yes
====================================================================================================
13 # IF you want to SSH to Kubernetes Master or Nodes Created by KOPS. You can SSH From KOPS_Server
sh -i ~/.ssh/id_rsa ubuntu@ipAddress ssh -i ~/.ssh/id_rsa [email protected]
``