
Cập nhật lần cuối: 03/02/2025 17:00
Cụm Kubernetes trên VNPT Cloud hỗ trợ hai chế độ kết nối:
Cụm VNPT Kubernetes Private không công khai địa chỉ IP và chỉ cho phép truy cập từ nội bộ mạng (VPC/VLAN) tương ứng. Để có thể kết nối và thao tác với cụm, bạn cần triển khai một máy ảo (Bastion VM) nằm trong cùng VPC và VLAN với cụm K8s, sau đó SSH vào máy này để sử dụng kubectl.
Dưới đây là các bước chi tiết để thực hiện:
Dải Network này là dải được dùng để khởi tạo dịch vụ VNPT K8s cần truy cập.
Vào VNPT Cloud Console > Dịch vụ hạ tầng > Security Group > Tạo mới Security Group.
Đặt tên cho Security Group (ví dụ: SG_bastion)
Thêm một Rule Inbound cho phép kết nối SSH (port 22) từ địa chỉ IP của bạn hoặc từ một dải IP cụ thể. Nếu cần, có thể thêm các rule bổ sung để cho phép các dịch vụ khác mà bastion instance sẽ truy cập được.
Truy cập vào VNPT Cloud Dashboard > Dịch vụ hạ tầng > VM (Máy ảo) và nhấp vào Tạo mới máy ảo.
Chọn hệ điều hành Linux (ví dụ: Ubuntu, Centos,...)
Chọn Gói cấu hình sẵn (ví dụ: SCM01 cho mục đích tiết kiệm chi phí).
Ở mục “Thông tin Network” phần “Chọn VLAN gắn vào máy ảo”. Đặt Bastion VM vào dải network đã được dùng để tạo cụm VKS (ví dụ ở đây là dải Network có tên là “pri_network”).
Lưu ý:
Đảm bảo rằng bạn đã gắn Security Group đã tạo ở bước 2 cho VM Bastion này. Ở mục “Thông tin Network” phần “Chọn Security Group”, nhấp chọn vào tên Security Group đã tạo.
Tạo hoặc chọn một SSH Key Pair mà bạn đã tải lên để truy cập instance qua SSH. Chúng tôi khuyến nghị bạn không nên SSH vào VM Bastion thông qua phương thức xác thực là mật khẩu vì lý do an toàn bảo mật của chính bạn. Để tạo keypair vui lòng truy cập vào VNPT Cloud Dashboard > Dịch vụ hạ tầng > Khóa truy cập (Keypair).
Sau khi hoàn thành các bước trên, tiến hành khởi VM Bastion bằng cách nhấp vào nút “Khởi tạo”.
Kết nối với Bastion VM bằng lệnh SSH:
ssh -i /path/to/your-private-key root@<Bastion-Public-IP>Truy cập vào giao diện Network tìm Router tự sinh ra khi tạo dịch vụ K8s. Router này là cố định và không thể thay đổi và xóa.
Bấm vào xem chi tiết và ghi nhớ địa chỉ NEXTHOP của Router để thực hiện addroute vào máy ảo bastion kết nối đến dịch vụ K8s:
Tiếp theo kiểm tra giao diện mạng trong máy ảo bastion (chính là network interface lúc tạo máy ảo trên giao diện console) để thực hiện add route tới cụm k8s như sau:
Tải hoặc copy script này vào một file trong máy ảo bastion:
vi addroute.sh#!/bin/bash
NETPLAN_FILE="/etc/netplan/01-netcfg-k8s.yaml"
NETWORK="10.101.16.0/20"
function is_valid_ip() {
local ip=$1
if [[ $ip =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then
IFS='.' read -r -a octets <<< "$ip"
for octet in "${octets[@]}"; do
if ((octet < 0 || octet > 255)); then
return 1
fi
done
return 0
else
return 1
fi
}
read -p "Enter INTERFACE in VM: " INTERFACE
while true; do
read -p "Enter IP Nexthop in Router: " NEXTHOP
if is_valid_ip "$NEXTHOP"; then
break
else
echo "Please enter correct format x.x.x.x (0-255)"
fi
done
cat > "$NETPLAN_FILE" << EOL
network:
version: 2
ethernets:
$INTERFACE:
dhcp4: true
routes:
- to: $NETWORK
via: $NEXTHOP
EOL
netplan apply
echo "Done !"Phân quyền thực thi cho file vừa tạo
chmod +x addroute.shThực hiện addroute tới cụm K8s, nhập vào giao diện mạng và địa chỉ của Router K8s đã đề cập ở trên:
./addroute.shLưu ý: nếu nhập sai giao diện mạng hoặc địa chỉ router thực hiện chạy lại file bash
./addroute.shVào VNPT Cloud Console > Dịch vụ nền tảng > Containers > Kubernetes.
Chọn cụm K8s cần thực hiện truy cập > Màn hình tổng quan > Tải hoặc sao chép file kubeconfig.

Thực hiện tải file kubeconfig và export file kubeconfig để sử dụng kubectl.
export KUBECONFIG=~root/product.yaml
kubectl get nodes