【问题标题】:kubelet option to set apiserver addresskubelet 选项来设置 apiserver 地址
【发布时间】:2018-05-24 22:40:38
【问题描述】:

我使用 hyperkube 设置了一个不安全的 k8s 主节点,并带有一个不安全的 API:

docker run -d --name=k8s-apiserver --net=container:etcd gcr.io/google_containers/hyperkube:v1.8.5 /apiserver --etcd-servers=http://127.0.0.1:2378 --service-cluster-ip-range=10.0.0.1/24 --insecure-bind-address=0.0.0.0 --insecure-port=8080 --admission-control=AlwaysAdmit

继续配置节点,docker run -d --name=kubelet gcr.io/google_containers/hyperkube:v1.8.5 /kubelet 命令的哪个选项将kubelet 指向主apiserver?我似乎无法使用 --help 找到此选项。

【问题讨论】:

    标签: api kubernetes nodes kubelet


    【解决方案1】:

    从 kubernetes 1.8 版开始,您应该使用--kubeconfig 键指定kubeconfig 文件的路径,该文件描述了如何连接到 API 服务器:

    --kubeconfig string      Path to a kubeconfig file, specifying how to connect to the API server. (default "/var/lib/kubelet/kubeconfig")
    

    /var/lib/kubelet/kubeconfig 类似:

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority: ~/.kube/ca.crt
        server: https://<API_IP>:<API_PORT>
      name: dev
    contexts:
    - context:
        cluster: dev
        user: dev
      name: dev
    current-context: dev
    kind: Config
    preferences: {}
    users:
    - name: dev
      user:
        as-user-extra: {}
        client-certificate: ~/.kube/client.crt
        client-key: ~/.kube/client.key
    

    所以,最后你应该把配置文件挂载到kubelet docker 容器中:

    docker run -d -v /var/lib/kubelet/kubeconfig:/var/lib/kubelet/kubeconfig --name=kubelet gcr.io/google_containers/hyperkube:v1.8.5 /kubelet
    

    【讨论】:

      猜你喜欢
      • 2018-12-04
      • 2021-01-07
      • 2022-01-25
      • 2019-07-25
      • 2020-02-27
      • 2019-06-01
      • 2021-08-10
      • 2020-06-16
      • 2019-10-02
      相关资源
      最近更新 更多