The entire Kubernetes architecture is API-driven, the main agent for communication (internal and external) is the Kubernetes-apiserver. There are API groups that may have multiple versions and follow a domain-name format with reserved names such as the empty group and names ending in .k8s.io . View the API groups with a curl query: $ curl https:// 127.0 . 0.1 : 6443 /apis -k .... { "name" : "apps" , "versions" : [ { "groupVersion" : "apps/v1beta1" , "version" : "v1beta1" }, { "groupVersion" : "apps/v1beta2" , "version" : "v1beta2" } ], }, .... Make the API calls with kubectl (recommended) or use curl or other program providing the certificates, keys, and JSON string or file when required. curl --cert userbob.pem \ --k