Lấy cấu hình cluster Kubernetes
Cluster Kubernetes do container infrastructure service cung cấp sẽ cho phép lấy kubeconfig qua CLI vinfra. Thao tác này không có REST endpoint riêng trong tài liệu, nên CLI là cách được hỗ trợ.
Lệnh này in ra kubeconfig gồm địa chỉ API server, CA của cluster, cùng client certificate, key và token cho user admin.
Điều kiện tiên quyết
vinfrađã được cài trên máy chạy lệnh.- Tài khoản Vietnix Cloud có quyền truy cập project sở hữu cluster.
- Tên hoặc ID của cluster.
Request
vinfra --vinfra-domain <domain_name> \
--vinfra-project <project_name> \
--vinfra-username <username> \
--vinfra-password <password> \
service compute k8saas config <k8s_cluster_name>
vinfra-domainstringbắt buộcDomain mà tài khoản thuộc về.
vinfra-projectstringbắt buộcProject sở hữu cluster.
vinfra-usernamestringbắt buộcTên đăng nhập của tài khoản.
vinfra-passwordstringbắt buộcMật khẩu tài khoản.
k8s_cluster_namestringbắt buộcTên hoặc ID của cluster Kubernetes.
Response
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: <...>
server: https://10.94.129.74:6443
name: k8s1
contexts:
- context:
cluster: k8s1
user: admin
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: admin
user:
client-certificate-data: <...>
client-key-data: <...>
token: <...>
Cách sử dụng
Lưu output vào file rồi trỏ kubectl tới file đó:
vinfra --vinfra-domain <domain_name> \
--vinfra-project <project_name> \
--vinfra-username <username> \
--vinfra-password <password> \
service compute k8saas config k8s1 > k8s1.kubeconfig
chmod 600 k8s1.kubeconfig
export KUBECONFIG=$PWD/k8s1.kubeconfig
kubectl get nodes
Kubeconfig cấp quyền cluster-admin. Hãy coi nó như mật khẩu: không đưa vào git hay ghi chú chia sẻ, và đổi credential của cluster nếu bị lộ.
Địa chỉ API server trong kubeconfig là địa chỉ private. Chạy kubectl từ mạng có thể tới được mạng của cluster, hoặc thiết lập route hay jump host trước.