Summary:
As core kubernetes APIs are implemented as HTTP interface, it provides ability to check and monitor any kubernetes objects live via curl . For example, we have a pod running ORDS for APEX. We can use curl to watch it via Kubernetes API . If the pod is deleted or fails, we can get some update on curl output. The concept applies to any objects in the K8S cluster. You can do the same for node,service, pv, pvc......etcWatch Node Steps:
- kubectl proxy --port=8080 & refer my other note
- curl http://127.0.0.1:8080/api/v1/nodes?watch=true
Watch Pod Steps:
- Get yaml output details of the pod you would like to watch
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
apexords-mt-deployment-7c7f95c954-5k7c5 1/1 Running 0 53m
apiVersion: v1
kind: Pod
metadata:
...........
controller: true
kind: ReplicaSet
name: apexords-mt-deployment-7c7f95c954
uid: bc88c05f-dcb0-11e8-9ee8-000017010a8f
resourceVersion: "5067431"
selfLink: /api/v1/namespaces/default/pods/apexords-mt-deployment-7c7f95c954-5k7c5
uid: aadc94f8-fe66-11e8-b83f-000017010a8f
spec:
containers:
.......
- Find resourceVersion : 5067431 which we will use in curl
- We need to proxy the Kubernetes API locally using kubectl proxy, we can discover the object we would like to watch apexords-mt-deployment-7c7f95c954-5k7c5 refer my other note
$kubectl proxy --port=8080 &
- Use curl to discover the object apexords-mt-deployment-7c7f95c954-5k7c5
curl http://127.0.0.1:8080/api/v1/namespaces/default/pods/apexords-mt-deplyment-7c7f95c954-5k7c5
{
"kind": "Pod",
"apiVersion": "v1",
"metadata": {
"name": "apexords-mt-deployment-7c7f95c954-5k7c5",
"generateName": "apexords-mt-deployment-7c7f95c954-",
"namespace": "default",
"selfLink": "/api/v1/namespaces/default/pods/apexords-mt-deployment-7c7f95c954-5k7c5",
"uid": "aadc94f8-fe66-11e8-b83f-000017010a8f",
"resourceVersion": "5067431",
"creationTimestamp": "2018-12-12
- Use curl to watch the object apexords-mt-deployment-7c7f95c954-5k7c5
curl -f http://127.0.0.1:8080/api/v1/namespaces/default/pods?watch=true&resourceVersion=5067431
.........
<don't click enter, otherwise it exits>
- Open another session to delete this pod, see the a live update from API server via curl watch command
$kubectl delete pod apexords-mt-deployment-7c7f95c954-5k7c5
No comments:
Post a Comment