api - kubelet选项设置apiserver地址

标签 api kubernetes nodes kubelet

我使用hyperkube和不安全的API设置了不安全的k8s主节点:

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找到此选项。

最佳答案

从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

关于api - kubelet选项设置apiserver地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47752398/

相关文章:

angularjs - 在预检错误中获取 Access-Control-Allow-Headers

python - Jenkins API 响应未采用 Crumb

kubernetes - 作业的 Kubernetes 状态条件列表?

kubernetes - 从自签名转换为商业证书 TLS 错误

node.js - 引用错误: Promise is not defined

ios - swift 中嵌套字典 API 的结构

php - 检索二级联系人 LinkedIn API

kubernetes - Ingress-nginx-套接字挂断,connResetException?

PHP DOM : Get Nodevalue without descendant nodes

java - 在java中永久更改节点的内容