본문 바로가기
카테고리 없음

Kubernetes client API정리

by 푸푸망나뇽 2021. 5. 10.
반응형

공식문서: github.com/kubernetes-client/javascript

 

kubernetes-client/javascript

Javascript client. Contribute to kubernetes-client/javascript development by creating an account on GitHub.

github.com

 

Kubernetes 환경에서 개발을 하면서 쿠버네티스 API를 활용할 일이 많다.

쿠버네티스에서 제공하는 API 공식문서는 사용법이나 가능한 API들이 리소스별로 정리가 친절히 되어있지않아 

나중을 위해 정리를 해보려한다.

 

API 파일의 위치는

/src/gen/api/coreV1Api.ts 이다.

raw.githubusercontent.com/kubernetes-client/javascript/master/src/gen/api/coreV1Api.ts

API 함수를 모아두고 설명도 주석과 함께 존재한다.

 

 

 API 사용법

import * as k8s from '@kubernetes/client-node';

// 특정 네임스페이스의 PVC list

routes() {return Router()
	.post('/pvclist', async (req: Request, res: Response) => {
        const kc = new k8s.KubeConfig();
        const param = req.body.data;
        kc.loadFromDefault();
        const k8sApi = kc.makeApiClient(k8s.CoreV1Api);

        var pvc = await k8sApi.listNamespacedPersistentVolumeClaim(param.namespace);
        res.json({data: pvc});
     })}

 

API return값

{
metadata:
	annotations: {kubectl.kubernetes.io/last-applied-configuration: "{"apiVersion":"v1","kind":"PersistentVolumeClaim",…e"],"resources":{"requests":{"storage":"1Gi"}}}}↵", pv.kubernetes.io/bind-completed: "yes", pv.kubernetes.io/bound-by-controller: "yes", volume.beta.kubernetes.io/storage-provisioner: "cluster.local/nfs-client-provisioner"}
	creationTimestamp: "2021-05-04T02:05:35.000Z"
	finalizers: ["kubernetes.io/pvc-protection"]
	labels: {app: "busybox"}
	name: "busybox"
	namespace: "default"
	resourceVersion: "7837209"
	selfLink: "/api/v1/namespaces/default/persistentvolumeclaims/busybox"
	uid: "da258515-82ac-4154-b7ac-72fab921ac76"
spec:
	accessModes: ["ReadWriteOnce"]
	resources: {requests: {…}}
	storageClassName: "nfs"
	volumeMode: "Filesystem"
	volumeName: "pvc-da258515-82ac-4154-b7ac-72fab921ac76"
status:
	accessModes: ["ReadWriteOnce"]
	capacity: {storage: "1Gi"}
	phase: "Bound"
}
반응형

댓글