Chuyển tới nội dung chính

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ộc

Domain mà tài khoản thuộc về.

vinfra-projectstringbắt buộc

Project sở hữu cluster.

vinfra-usernamestringbắt buộc

Tên đăng nhập của tài khoản.

vinfra-passwordstringbắt buộc

Mật khẩu tài khoản.

k8s_cluster_namestringbắt buộc

Tê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
warning

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ộ.

note

Đị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.