【问题标题】:Access kubernetes secure API after running with docker使用docker运行后访问kubernetes安全API
【发布时间】:2016-03-21 19:28:13
【问题描述】:

我已经使用 docker-machine 在我的 Mac 上创建了一个 kubenetes 集群,遵循此处的文档:

http://kubernetes.io/docs/getting-started-guides/docker/

我可以从 127.0.0.1:8080 上的实例内部访问普通 api,但我想从我的 macbook 外部访问它。我知道有一个安全端口:6443,但我不确定如何设置凭据以访问此端口。

有很多关于如何在 kubernetes 的自定义安装中执行此操作的说明,但我不知道如何在我正在运行的 docker 容器中执行此操作。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您可能需要使用 Virtual Box 的 port forwarding 功能。文档中的一个示例:

    VBoxManage modifyvm "MyVM" --natpf1 "k8srule,tcp,,6443,,6443"
    

    这会将所有主机接口上的端口 6443 转发到来宾的端口 6443。端口转发也可以通过 VirtualBox UI 进行配置。

    【讨论】:

      【解决方案2】:

      这就像一种解决方法,但大多数时候,我认为 KubeOnDocker 设置是为不需要凭据机制的开发人员设置的:

      当您启动 KubeOnDocker 时,--config=/etc/kubernetes/manifests 指向 master.json。如果您查看 apiserver start 命令,您将看到 --insecure-bind-address 是 127.0.0.1。如果您使用--config=/etc/kubernetes/manifests-multi,它将指向master-multi.json--insecure-bind-address 将是0.0.0.0,并且可以从任何地方访问 apiserver。

      请注意,您需要使用 manifests-multi 启动 etcd。

      # Not tested start
      docker run \
        -d \
        --net=host \
        gcr.io/google_containers/etcd:2.2.1 \
          /usr/local/bin/etcd \
          --listen-client-urls=http://127.0.0.1:4001 \
          --advertise-client-urls=http://127.0.0.1:4001 \
          --data-dir=/var/etcd/data
      

      【讨论】:

        猜你喜欢
        • 2017-11-28
        • 1970-01-01
        • 2019-05-17
        • 2018-01-10
        • 2021-10-02
        • 2018-05-26
        • 1970-01-01
        • 2019-02-02
        • 1970-01-01
        相关资源
        最近更新 更多