【问题标题】:Issue accessing kubernetes apis from a pod in azure environment在 azure 环境中从 pod 访问 kubernetes api 的问题
【发布时间】:2016-07-21 09:09:11
【问题描述】:

我在 azure 环境中运行 kubernetes 集群,我想从 pod 容器内访问 kubernetes 服务 api。但我无法从 pod 内部连接到 https://kubernetes/

kubectl get services
NAME               CLUSTER_IP      EXTERNAL_IP   PORT(S)
kubernetes         10.16.0.1       <none>        443/TCP 

即使尝试

curl -v --cacert /var/run/kubernetes/apiserver.crt https://10.16.0.1:443/api/v1/namespaces/default/pods

结果

  • 正在尝试 10.16.0.1...
  • 已连接到 10.16.0.1 (10.16.0.1) 端口 443 (#0)
  • ALPN,提供 http/1.1
  • 密码选择:ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
  • 成功设置证书验证位置:
  • CAfile:/var/run/kubernetes/apiserver.crt CApath:/etc/ssl/certs
  • TLSv1.2 (OUT)、TLS 标头、证书状态 (22):
  • TLSv1.2 (OUT)、TLS 握手、客户端问候 (1):
  • 连接到 10.16.0.1:443 时出现未知的 SSL 协议错误
  • 关闭连接 0 curl:(35) 连接到 10.16.0.1:443 时出现未知 SSL 协议错误

【问题讨论】:

  • 运行curl -k ...是否有效(例如,只是SSL验证失败)?
  • 已经尝试使用 -k 选项。同样的问题。
  • 进一步调试了这个问题。在 pod 内的 gce 环境中,我可以运行 curl -v -k https://kubernetes,但在 azure 环境中,kubernetes 没有解析到相应的 IP 地址。
  • 您能否检查一下 Kubernetes 服务是否注册了任何端点(运行 kubectl get endpoints)?
  • 是的端点已分配,但端口是 6443

标签: azure kubernetes


【解决方案1】:

以下修复工作:

  1. 已将行 https://github.com/kubernetes/kubernetes/blob/v1.2.0/docs/getting-started-guides/coreos/azure/cloud_config_templates/kubernetes-cluster-main-nodes-template.yml#L218 更改为也具有 --bind-address=0.0.0.0 选项。
  2. 创建 Kubernetes 集群
  3. 使 kubernetes api 端口可从外部访问。

您可以使用主机作为节点的IP地址和端口来访问kubernetes api。

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2019-05-08
    • 2018-12-08
    • 1970-01-01
    相关资源
    最近更新 更多