K8S - LAB1

k8s

1. CREATE EC2 SERVER (MASTER/WORKER NODES)

NOTE: Using aws cli on poweshell

1.1. Init variable

$keyName = "tuannd67"

$sgGroupId = "sg-05306f6795fe2025b"
$subnet1Id = "subnet-061a0f7fde133b9b8"

$Server1Name = "tuannd-k8s-master"
$Server2Name = "tuannd-k8s-worker1"
$Server3Name = "tuannd-k8s-worker2"

$amiK8s = "ami-03f3c2405653912a3"

1.2. Create Master node

$Server1ID = aws ec2 run-instances `
    --image-id $amiK8s `
    --instance-type t2.medium `
    --key-name $keyName `
    --security-group-ids $sgGroupId `
    --subnet-id $subnet1Id `
    --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$Server1Name}]" `
    --associate-public-ip-address `
    --query "Instances[0].InstanceId"

1.3. Create Worker nodes

$Server2ID = aws ec2 run-instances `
    --image-id $amiK8s `
    --instance-type t2.micro `
    --key-name $keyName `
    --security-group-ids $sgGroupId `
    --subnet-id $subnet1Id `
    --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$Server2Name}]" `
    --associate-public-ip-address `
    --query "Instances[0].InstanceId"

$Server3ID = aws ec2 run-instances `
    --image-id $amiK8s `
    --instance-type t2.micro `
    --key-name $keyName `
    --security-group-ids $sgGroupId `
    --subnet-id $subnet1Id `
    --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$Server3Name}]" `
    --associate-public-ip-address `
    --query "Instances[0].InstanceId"

1.4. Set hostname

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

2. MASTER NODE

2.1. Init

sudo -s
kubeadm init --pod-network-cidr=10.244.0.0/16

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

2.2. Get nodes

kubectl get nodes

2.3. Create token (for joining worker node)

kubeadm token create --print-join-command

2.4 Delete nodes

kubectl get nodes -o wide
kubectl drain node1 --delete-local-data --force --ignore-daemonsets
kubectl delete node1

3. WORKER NODES

3.1. Join cluster

kubeadm join 10.0.1.222:6443 --token wrsrkm.vuuetb8jnkkvfe98 \
        --discovery-token-ca-cert-hash sha256:9c949654a4ab32409f411f38e4418686e9bd9dc2a59c48fa10bf85a5f2970847

4. TESTING

sudo systemctl status docker
sudo systemctl status kubelet

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl restart kubelet
sudo systemctl start kubelet

5. CLEAN UP

aws ec2 stop-instances --instance-ids $Server1ID $Server2ID $Server3ID
aws ec2 terminate-instances --instance-ids $Server1ID $Server2ID $Server3ID

Previous Post Next Post