Minikube 基础插件 addons

作者: Anoyi | 来源:发表于2018-05-09 16:48 被阅读138次

    minikube 通过插件的方式提供了 k8s 集群的基本服务。

    Minikube 插件

    查看所有插件

    minikube addons list
    

    输入如下:

    - addon-manager: enabled
    - coredns: disabled
    - dashboard: enabled
    - default-storageclass: enabled
    - efk: disabled
    - freshpod: disabled
    - heapster: disabled
    - ingress: disabled
    - kube-dns: enabled
    - metrics-server: disabled
    - registry: disabled
    - registry-creds: disabled
    - storage-provisioner: enabled
    

    默认启用的:

    • 【插件管理】addon-manager
    • 【可视化管理面板】dashboard
    • 【存储类】default-storageclass
    • 【DNS服务】kube-dns
    • 【存储提供者】storage-provisioner

    可以看到 minikube 默认为我们启动了一些插件,插件启动的服务的 namespace 一般为 kube-system ,查看该 namespace 下的 pods 和 services:

    kubectl get pods,services -n kube-system
    

    输入如下:

    NAME                              READY     STATUS              RESTARTS   AGE
    pod/kube-addon-manager-minikube   0/1       ContainerCreating   0          5h
    

    从状态可以看到,服务没有启动成功,查看原因:

    kubectl get events -n kube-system
    

    输出如下:

    LAST SEEN   FIRST SEEN   COUNT     NAME                                           KIND      SUBOBJECT   TYPE      REASON                   SOURCE              MESSAGE
    18m         6h           658       kube-addon-manager-minikube.152cd7f6ac31a536   Pod                   Warning   FailedCreatePodSandBox   kubelet, minikube   
    Failed create pod sandbox: rpc error: code = Unknown desc = failed pulling image "k8s.gcr.io/pause-amd64:3.1": Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    
    

    很明显,无法获取到镜像 k8s.gcr.io/pause-amd64:3.1,因为墙的原因,虽然 Minikube 启动成功了,但是相关的基础服务都无法正常启动。如何解决呢?只需在 Minikube 创建的 VM 中拉取相应镜像即可。

    解决基础服务的启动问题

    进入 minikube VM

    minikube ssh
    

    获取所有相关镜像

    export image=pause-amd64:3.1
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} k8s.gcr.io/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    export image=kube-addon-manager:v8.6
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} k8s.gcr.io/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    export image=kubernetes-dashboard-amd64:v1.8.1
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} k8s.gcr.io/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    export image=storage-provisioner:v1.8.1
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} gcr.io/k8s-minikube/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    export image=k8s-dns-sidecar-amd64:1.14.5
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} k8s.gcr.io/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    export image=k8s-dns-kube-dns-amd64:1.14.5
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} k8s.gcr.io/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    export image=k8s-dns-dnsmasq-nanny-amd64:1.14.5
    docker pull registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    docker tag registry.cn-hangzhou.aliyuncs.com/anoy/${image} k8s.gcr.io/${image}
    docker rmi registry.cn-hangzhou.aliyuncs.com/anoy/${image}
    
    

    技巧:在 dockerHub 或 阿里云镜像仓库中找到相应版本的镜像,并重新 tag 就能让服务正常运行

    等待 1 分钟左右后,再次查看 pods 和 services

    kubectl get pods,services -n kube-system
    

    输出如下

    NAME                                        READY     STATUS    RESTARTS   AGE
    pod/kube-addon-manager-minikube             1/1       Running   0          6h
    pod/kube-dns-6dcb57bcc8-qn5ml               3/3       Running   0          22m
    pod/kubernetes-dashboard-5498ccf677-ptnn9   1/1       Running   0          22m
    pod/storage-provisioner                     1/1       Running   0          22m
    
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
    service/kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   22m
    service/kubernetes-dashboard   NodePort    10.96.249.239   <none>        80:30000/TCP    22m
    

    至此,本机搭建的 k8s 集群就能正常工作了。

    插件管理

    未完待续。。。。

    相关文章

      网友评论

      • 707451f034a8:感谢,解决了我的问题,👍
      • 155dd895f8f2:Thank you. But version 3.1 does not exist. Switch back to 3.0 is OK.
        I cannot input Chinese current now...

      本文标题:Minikube 基础插件 addons

      本文链接:https://www.haomeiwen.com/subject/qyagrftx.html