Kubernetes là một hệ thống mã nguồn mở để tự động triển khai, scaling, quản lý các container. Kubernetes được xây dựng bởi Google dựa trên kinh nghiệm quản lý sử dụng các container trong khi triển khai một hệ thống quản lý gọi là Borg ( nhiều lúc gọi là Omega).
Chuẩn bị
Cấu hình địa chỉ IP tĩnh
vim /etc/network/interfaces
iface enp2s0 inet static
address 172.16.12.120
netmask 255.255.255.0
network 172.16.12.0
gateway 172.16.12.1
dns-nameservers 8.8.8.8
Thiết lập file host theo yêu cầu, chú ý thiết lập cả trên master và các node
vim /etc/hosts
172.16.12.120 k8s-master
172.16.12.135 k8s-node1
172.16.12.136 k8s-node2
service networking restart
Cập nhật các bản vá
apt update && apt upgrade -y
Thiết lập kho cài đặt k8s
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –
cat </etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
Cài đặt K8s
apt-get update
apt-get install -y kubelet kubeadm kubectl docker.io
Tiếp theo các bạn chạy lệnh sau:
kubeadm init –pod-network-cidr 10.244.0.0/16
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/confi
chown $(id -u):$(id -g) /root/.kube/config
Tiếp tục chạy lệnh
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Thống kê các namespaces đang chạy
kubectl get pods –all-namespaces
watch kubectl get pods –all-namespaces
Khởi động lại dịch vụ
systemctl daemon-reload
systemctl restart kubelet
kubectl get node
watch kubectl get node
Cài đặt Dashboard cho k8s
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
Run command
cat < /root/khanh1.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
EOF
cat < /root/khanh2.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
EOF
Thực hiện chạy lệnh để apply
kubectl apply -f /root/khanh1.yml
kubectl apply -f /root/khanh2.yml
Hiển thị token để đăng nhập vào dashboard
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk ‘{print $1}’)
kubectl proxy –address 0.0.0.0 –accept-hosts=’^*$’
—————————————– Install Keepalived ——————————-
- Install
apt-get install keepalived -y
- Create file keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 101
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.12.123
}
}
- Copy file to node server and start it
service keepalived start
- Check
ip addr show eth0
result
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:a5:ee:89 brd ff:ff:ff:ff:ff:ff
inet 172.16.12.120/24 brd 172.16.12.255 scope global ens33
valid_lft forever preferred_lft forever
inet 172.16.12.123/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea5:ee89/64 scope link
valid_lft forever preferred_lft forever
Note: Max 20 ip per vip