任务

Kubernetes v1.12 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。

任务
管理集群
管理集群
Autoscale the DNS Service in a Cluster (EN)
Debug DNS 方案
IP Masquerade Agent User Guide (EN)
Kubernetes Cloud Controller Manager (EN)
Operating etcd clusters for Kubernetes (EN)
Reconfigure a Node's Kubelet in a Live Cluster (EN)
Reserve Compute Resources for System Daemons (EN)
Safely Drain a Node while Respecting Application SLOs (EN)
Securing a Cluster (EN)
Set up High-Availability Kubernetes Masters (EN)
Storage Object in Use Protection
为节点发布扩展资源
使用 Calico 来提供 NetworkPolicy
使用 CoreDNS 进行服务发现
使用 KMS 提供商进行数据加密
使用 Kubernetes API 访问集群
使用 Romana 来提供 NetworkPolicy
使用 Weave 网络来提供 NetworkPolicy
关键插件 Pod 的调度保证
命名空间演练
在 Kubernetes 中配置私有 DNS 和上游域名服务器
在 Kubernetes 集群中使用 sysctl
声明网络策略
应用资源配额和限额
开发云控制器管理器
控制节点上的CPU管理策略
改变默认 StorageClass
更改 PersistentVolume 的回收策略
设置 Pod CPU 和内存限制
访问集群上运行的服务
通过命名空间共享集群
通过配置文件设置 Kubelet 参数
配置 API 对象配额
配置命名空间下pod总数
配置多个调度器
配置资源不足时的处理方式
限制存储消耗
集群管理
静态 Pods
静态加密 Secret 数据
安装网络策略驱动
Extend kubectl with plugins (EN)
管理巨页(HugePages)
自动伸缩集群中的 DNS 服务
调度 GPU

Edit This Page

访问集群上运行的服务

本文展示了如何连接 Kubernetes 集群上运行的服务。

准备开始

您必须拥有一个 Kubernetes 集群,并且必须使用 kubectl 命令行工具与你的集群进行通信。如果您还没有一个集群,您可以通过 Minikube 创建一个集群,或者使用这些 Kubernetes playground :

To check the version, enter kubectl version.

访问集群上运行的服务

在 Kubernetes 里, nodespodsservices 都有它们自己的 IP。许多情况下,集群上的 node IP、pod IP 和某些 service IP 路由不可达,所以不能从一个集群之外的节点访问它们,例如从你自己的台式机。

连接方式

你有多种从集群外连接 nodes、pods 和 services 的选项:

发现内置服务

典型情况下,kube-system 会启动集群中的几个服务。使用 kubectl cluster-info 命令获取它们的列表:

$ kubectl cluster-info

  Kubernetes master is running at https://104.197.5.247
  elasticsearch-logging is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy
  kibana-logging is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/kibana-logging/proxy
  kube-dns is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/kube-dns/proxy
  grafana is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
  heapster is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy

这显示了用于访问每个服务的 proxy-verb URL。例如,这个集群启用了(使用 Elasticsearch)集群层面的日志,如果提供合适的凭据可以通过 https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/ 访问,或通过一个 kubectl 代理地址访问,如:http://localhost:8080/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/。(请查看 上文 关于如何传递凭据或者使用 kubectl 代理的说明。)

手动构建 apiserver 代理 URLs

如同上面所提到的,你可以使用 kubectl cluster-info 命令取得 service 的代理 URL。为了创建包含 service endpoints、suffixes 和 parameters 的代理 URLs,你可以简单的在 service 的代理 URL中 添加: http://kubernetes_master_address/api/v1/namespaces/namespace_name/services/service_name[:port_name]/proxy

如果还没有为你的端口指定名称,你可以不用在 URL 中指定 *port_name*。

示例
  {
    "cluster_name" : "kubernetes_logging",
    "status" : "yellow",
    "timed_out" : false,
    "number_of_nodes" : 1,
    "number_of_data_nodes" : 1,
    "active_primary_shards" : 5,
    "active_shards" : 5,
    "relocating_shards" : 0,
    "initializing_shards" : 0,
    "unassigned_shards" : 5
  }

通过 web 浏览器访问集群中运行的服务

你或许能够将 apiserver 代理的 url 放入浏览器的地址栏,然而:

反馈