10 Mayıs 2022 Salı

kubectl proxy seçeneği - API Server Çalıştırır

Giriş
Açıklaması şöyle. Eğer minikube veya kind gibi yerel bir ortam kullanıyorsak bu komu ile bir API Server çalıştırırız.  Açıklaması şöyle
To make it easy to use the curl tool to explore the API server, run the kubectl tool in proxy mode to expose an unauthenticated API server on localhost:8001
Böylece pod üzerindeki HTTP sunucusuna kolayca erişmek için kullanılır
If you want to directly access the REST API with an http client like curl or wget, or a browser, ...
Örnek
Şöyle yaparız
kubectl proxy
API Server sorgusu göndeririz. v1 ile biten sorgu daha detaylı çıktı verir
curl --location --request GET 'http://localhost:8001/api'
curl --location --request GET 'http://localhost:8001/api/v1'
curl --location --request GET 'http://localhost:8001/openapi/v2'
api Endpoint
Kısa bir çıktı verir.. api Endpoint yazısına taşıdım

v1 Endpoint
Hem namespace içinde olan hem de olmayan kaynaklar hakkında detaylı çıktı verir.

v2 Endpoint
OpenAPI çıktısı verir. Açıklaması şöyle.
OpenAPI Specification
The API server also provides information about the schema for all Kubernetes resources. The schema is represented by the Swagger syntax. We can receive the specification by running the following curl command.

curl --location --request GET 'http://localhost:8001/openapi/v2'
If we want to program a client that communicates with the API server, we can use this schema to generate a Swagger library in it.
v1 Endpoint Örnekleri
namespace içindeki kaynaklara sorgular için şöyle yaparız
# /api/v1/namespaces
curl --location --request GET 'http://localhost:8001/api/v1/namespaces'

# /api/v1/namespaces/{namespace-name}/{resource-type-name}
curl --location --request GET 'http://localhost:8001/api/v1/namespaces/kube-system/pods'

# /api/v1/namespaces/{namespace-name}/{resource-type-name}/{resource-name}
curl --location --request GET 'http://localhost:8001/api/v1/namespaces/kube-system/pods/coredns-565d847f94-bv45c'

# /api/v1/namespaces/{namespace-name}/{resource-type-name}/{resource-name}/logs
curl --location --request GET 'http://localhost:8001/api/v1/namespaces/kube-system/pods/coredns-565d847f94-bv45c/logs'
namespace içinde olmayan kaynaklara sorgular için şöyle yaparız
a# /api/v1/{resource-type-name
curl --location --request GET 'http://localhost:8001/api/v1/persistentvolumes'

# /api/v1/{resource-type-name}
curl --location --request GET 'http://localhost:8001/api/v1/persistentvolumeclaims'

# /api/v1/{resource-type-name}/{resource-name}
curl --location --request GET 'http://localhost:8001/api/v1/persistentvolumeclaims/postgres-0'
Açıklaması şöyle
Watch Operations

The API server also supports a watch API. Instead of polling in specific intervals for some updates, we can use the watch API to get low-latency updates with a single connection.

We only need to add ?watch=true as a parameter to our API server requests. After this, the API server switches into watch mode, and leaves the connection between the client and the server open.

Örnek - Pod'a Erişmek
Bundan sonra bir pod üzerindeki web sunucusuna erişmek için şöyle yaparız
http://localhost:8001/api/v1/namespaces/default/pods /adv-vitess-cluster-vttablet-az1-1330809953-8066577e:15000
Örnek  - Pod'a Erişmek
Şöyle yaparız
$ kubectl proxy
$ curl -H “Content-Type: application/json” 
  -X POST 
  — data @binding.json 
http://localhost:8001/api/v1/namespaces/default/pods/foobar-sched/binding

Hiç yorum yok:

Yorum Gönder

Cluster Propotional Autoscaler - ReplicaSet Ekler/Siler

Giriş Açıklaması şöyle CPA aims to horizontally scale the number of Pod replicas based on the cluster’s scale. A common example is DNS ser...