1 Star 0 Fork 0

zhuchance / kubernetes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
accessing-the-api.md 4.44 KB
一键复制 编辑 原始数据 按行查看 历史
Chao Xu 提交于 2015-12-14 10:37 . run hack/update-generated-docs.sh

WARNING WARNING WARNING WARNING WARNING

PLEASE NOTE: This document applies to the HEAD of the source tree

If you are using a released version of Kubernetes, you should refer to the docs that go with that version.

The latest release of this document can be found [here](http://releases.k8s.io/release-1.1/docs/admin/accessing-the-api.md).

Documentation for other releases can be found at releases.k8s.io.

Configuring APIserver ports

This document describes what ports the Kubernetes apiserver may serve on and how to reach them. The audience is cluster administrators who want to customize their cluster or understand the details.

Most questions about accessing the cluster are covered in Accessing the cluster.

Ports and IPs Served On

The Kubernetes API is served by the Kubernetes apiserver process. Typically, there is one of these running on a single kubernetes-master node.

By default the Kubernetes APIserver serves HTTP on 2 ports:

  1. Localhost Port - serves HTTP - default is port 8080, change with --insecure-port flag. - defaults IP is localhost, change with --insecure-bind-address flag. - no authentication or authorization checks in HTTP - protected by need to have host access
  2. Secure Port - default is port 6443, change with --secure-port flag. - default IP is first non-localhost network interface, change with --bind-address flag. - serves HTTPS. Set cert with --tls-cert-file and key with --tls-private-key-file flag. - uses token-file or client-certificate based authentication. - uses policy-based authorization.
  3. Removed: ReadOnly Port - For security reasons, this had to be removed. Use the service account feature instead.

Proxies and Firewall rules

Additionally, in some configurations there is a proxy (nginx) running on the same machine as the apiserver process. The proxy serves HTTPS protected by Basic Auth on port 443, and proxies to the apiserver on localhost:8080. In these configurations the secure port is typically set to 6443.

A firewall rule is typically configured to allow external HTTPS access to port 443.

The above are defaults and reflect how Kubernetes is deployed to Google Compute Engine using kube-up.sh. Other cloud providers may vary.

Use Cases vs IP:Ports

There are three differently configured serving ports because there are a variety of uses cases:

  1. Clients outside of a Kubernetes cluster, such as human running kubectl on desktop machine. Currently, accesses the Localhost Port via a proxy (nginx) running on the kubernetes-master machine. The proxy can use cert-based authentication or token-based authentication.
  2. Processes running in Containers on Kubernetes that need to read from the apiserver. Currently, these can use a service account.
  3. Scheduler and Controller-manager processes, which need to do read-write API operations, using service accounts to avoid the need to be co-located.
  4. Kubelets, which need to do read-write API operations and are necessarily on different machines than the apiserver. Kubelet uses the Secure Port to get their pods, to find the services that a pod can see, and to write events. Credentials are distributed to kubelets at cluster setup time. Kubelet and kube-proxy can use cert-based authentication or token-based authentication.

Expected changes

  • Policy will limit the actions kubelets can do via the authed port.

Analytics

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/meoom/kubernetes.git
git@gitee.com:meoom/kubernetes.git
meoom
kubernetes
kubernetes
v1.2.0-alpha.8

搜索帮助

344bd9b3 5694891 D2dac590 5694891