понедельник, 8 июля 2019 г.

опрашиваем curl'ом API kubernetes сервера

Понадобилось выяснить есть ли коннект к API кубера, нашел решение.


1) на сервере Kubernetes пишем: kubectl get secrets

2) получаем secret на подобие: default-token-xxxxx

3) создаем роль kube-admin.yaml и применяем его kubectl apply -f kube-admin.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kube-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kube-admin
  namespace: kube-system

4) получаем токен: kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}')

5) получаем ключ:  kubectl get secret <secret name> -o jsonpath="{['data']['ca\.crt']}" | base64 --decode

6) на своем компе создаем файл ca.crt и вставляем туда полученный ключ и токен.

7) curl -k --cacert ca.crt -H "Authorization: Bearer eyJhb...тут будет токен" https://YOURIP:6443/api/v1/namespaces/default/pods

8)  получаем значения в JSON формате.


        "hostIP": "10.164.15.224",

        "podIP": "172.19.64.36",

        "startTime": "2019-07-04T09:15:58Z",
        "containerStatuses": [
          {
            "name": "wordpress",
            "state": {
              "running": {
                "startedAt": "2019-07-08T15:26:03Z"
              }
            },

Комментариев нет:

Отправить комментарий