指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

使用minikube配置dashboard:

//前置条件
清理掉docker cli 代理配置
sudo vim ~/.docker/config.json
{
  "proxies": {}
}
  
恢复 /etc/resolve.conf里的配置 (之前加了dns 8.8.8.8,没用)
sudo vim /etc/resolve.conf
nameserver 127.0.0.53
options edns0 trust-ad
search .
  
恢复 /etc/hosts下的配置 (修改过本地hostname的解析,没用)
$ hostname
tianyi510s
  
最后修改了 daemon.json的配置:
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.unsee.tech",
"https://dockerpull.org",
"https://dockerhub.icu"
]
}
  
记得执行: sudo systemctl daemon-reload && sudo systemctl restart docker
  
这几个镜像加速配置的链接信息(镜像加速查询集合): https://www.cnblogs.com/alex-oos/p/18417200
  
重点: 其实docker的镜像配置,无论是 daemon 还是cli(虽然cli的可以通过最上面的方式配置)的,直接配置 /etc/docker/daemon.json 对两种方式都生效,根本不需要配置docker.service.d/http-proxy.conf,完全扯蛋的.
  
//正式开始
$ minikube dashboard
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
  
//查看pod状态:
$ kubectl get pods -n kubernetes-dashboard
NAME                                        READY   STATUS              RESTARTS   AGE
dashboard-metrics-scraper-c5db448b4-9wxtf   0/1     ImagePullBackOff    0          117s
kubernetes-dashboard-695b96c756-ftld6       0/1     ErrImagePull        0          117s
kubernetes-dashboard-6b9d555977-rltvk       0/1     ContainerCreating   0          10s
  
//然后就计划拉取镜像到本地,然后load到minikube(主要就是下面这两个镜像)
$ docker pull kubernetesui/dashboard:v2.7.0
v2.7.0: Pulling from kubernetesui/dashboard
Digest: sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93
Status: Downloaded newer image for kubernetesui/dashboard:v2.7.0
docker.io/kubernetesui/dashboard:v2.7.0
  
$ docker pull kubernetesui/metrics-scraper:v1.0.8
v1.0.8: Pulling from kubernetesui/metrics-scraper
978be80e3ee3: Pull complete 
5866d2c04d96: Pull complete 
Digest: sha256:76049887f07a0476dc93efc2d3569b9529bf982b22d29f356092ce206e98765c
Status: Downloaded newer image for kubernetesui/metrics-scraper:v1.0.8
docker.io/kubernetesui/metrics-scraper:v1.0.8
  
//加载镜像到Minikube
minikube image load kubernetesui/dashboard:v2.7.0
minikube image load kubernetesui/metrics-scraper:v1.0.8
  
//重新启动 Kubernetes Dashboard
kubectl rollout restart deployment kubernetes-dashboard -n kubernetes-dashboard
  
//执行下面命令查看pods状态,还是有问题
$ kubectl get pods -n kubernetes-dashboard
NAME                                        READY   STATUS              RESTARTS   AGE
dashboard-metrics-scraper-c5db448b4-9wxtf   0/1     ImagePullBackOff    0          117s
kubernetes-dashboard-695b96c756-ftld6       0/1     ErrImagePull        0          117s
kubernetes-dashboard-6b9d555977-rltvk       0/1     ContainerCreating   0          10s
  
//然后执行命令查看 kubernetes-dashboard 命名空间下的pod描述信息
$ kubectl describe pod -n kubernetes-dashboard
Name:             dashboard-metrics-scraper-c5db448b4-9wxtf
Namespace:        kubernetes-dashboard
Priority:         0
Service Account:  kubernetes-dashboard
Node:             minikube/192.168.49.2
Start Time:       Tue, 10 Dec 2024 22:48:35 +0800
Labels:           k8s-app=dashboard-metrics-scraper
                  pod-template-hash=c5db448b4
Annotations:      seccomp.security.alpha.kubernetes.io/pod: runtime/default
Status:           Pending
IP:               10.244.0.4
IPs:
  IP:           10.244.0.4
Controlled By:  ReplicaSet/dashboard-metrics-scraper-c5db448b4
Containers:
  dashboard-metrics-scraper:
    Container ID:   
    Image:          docker.io/kubernetesui/metrics-scraper:v1.0.8@sha256:76049887f07a0476dc93efc2d3569b9529bf982b22d29f356092ce206e98765c
    Image ID:       
    Port:           8000/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:8000/ delay=30s timeout=30s period=10s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /tmp from tmp-volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-6t9pr (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True 
  Initialized                 True 
  Ready                       False 
  ContainersReady             False 
  PodScheduled                True 
Volumes:
  tmp-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  kube-api-access-6t9pr:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node-role.kubernetes.io/master:NoSchedule
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  8m15s                  default-scheduler  Successfully assigned kubernetes-dashboard/dashboard-metrics-scraper-c5db448b4-9wxtf to minikube
  Normal   Pulling    5m42s (x4 over 8m12s)  kubelet            Pulling image "docker.io/kubernetesui/metrics-scraper:v1.0.8@sha256:76049887f07a0476dc93efc2d3569b9529bf982b22d29f356092ce206e98765c"
  Warning  Failed     5m18s (x4 over 7m42s)  kubelet            Failed to pull image "docker.io/kubernetesui/metrics-scraper:v1.0.8@sha256:76049887f07a0476dc93efc2d3569b9529bf982b22d29f356092ce206e98765c": Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     5m18s (x4 over 7m42s)  kubelet            Error: ErrImagePull
  Warning  Failed     5m8s (x6 over 7m42s)   kubelet            Error: ImagePullBackOff
  Normal   BackOff    3m5s (x13 over 7m42s)  kubelet            Back-off pulling image "docker.io/kubernetesui/metrics-scraper:v1.0.8@sha256:76049887f07a0476dc93efc2d3569b9529bf982b22d29f356092ce206e98765c"


Name:             kubernetes-dashboard-68df97dbb4-gsfwg
Namespace:        kubernetes-dashboard
Priority:         0
Service Account:  kubernetes-dashboard
Node:             minikube/192.168.49.2
Start Time:       Tue, 10 Dec 2024 22:56:05 +0800
Labels:           gcp-auth-skip-secret=true
                  k8s-app=kubernetes-dashboard
                  pod-template-hash=68df97dbb4
Annotations:      kubectl.kubernetes.io/restartedAt: 2024-12-10T22:56:05+08:00
Status:           Pending
IP:               10.244.0.6
IPs:
  IP:           10.244.0.6
Controlled By:  ReplicaSet/kubernetes-dashboard-68df97dbb4
Containers:
  kubernetes-dashboard:
    Container ID:  
    Image:         docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93
    Image ID:      
    Port:          9090/TCP
    Host Port:     0/TCP
    Args:
      --namespace=kubernetes-dashboard
      --enable-skip-login
      --disable-settings-authorizer
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:9090/ delay=30s timeout=30s period=10s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /tmp from tmp-volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-pgfqd (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True 
  Initialized                 True 
  Ready                       False 
  ContainersReady             False 
  PodScheduled                True 
Volumes:
  tmp-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  kube-api-access-pgfqd:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node-role.kubernetes.io/master:NoSchedule
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age               From               Message
  ----     ------     ----              ----               -------
  Normal   Scheduled  45s               default-scheduler  Successfully assigned kubernetes-dashboard/kubernetes-dashboard-68df97dbb4-gsfwg to minikube
  Warning  Failed     20s               kubelet            Failed to pull image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93": Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     20s               kubelet            Error: ErrImagePull
  Normal   BackOff    20s               kubelet            Back-off pulling image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93"
  Warning  Failed     20s               kubelet            Error: ImagePullBackOff
  Normal   Pulling    6s (x2 over 42s)  kubelet            Pulling image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93"


Name:             kubernetes-dashboard-6b9d555977-rltvk
Namespace:        kubernetes-dashboard
Priority:         0
Service Account:  kubernetes-dashboard
Node:             minikube/192.168.49.2
Start Time:       Tue, 10 Dec 2024 22:50:22 +0800
Labels:           gcp-auth-skip-secret=true
                  k8s-app=kubernetes-dashboard
                  pod-template-hash=6b9d555977
Annotations:      kubectl.kubernetes.io/restartedAt: 2024-12-10T22:50:22+08:00
Status:           Pending
IP:               10.244.0.5
IPs:
  IP:           10.244.0.5
Controlled By:  ReplicaSet/kubernetes-dashboard-6b9d555977
Containers:
  kubernetes-dashboard:
    Container ID:  
    Image:         docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93
    Image ID:      
    Port:          9090/TCP
    Host Port:     0/TCP
    Args:
      --namespace=kubernetes-dashboard
      --enable-skip-login
      --disable-settings-authorizer
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:9090/ delay=30s timeout=30s period=10s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /tmp from tmp-volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-mtg6l (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True 
  Initialized                 True 
  Ready                       False 
  ContainersReady             False 
  PodScheduled                True 
Volumes:
  tmp-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  kube-api-access-mtg6l:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node-role.kubernetes.io/master:NoSchedule
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  6m28s                  default-scheduler  Successfully assigned kubernetes-dashboard/kubernetes-dashboard-6b9d555977-rltvk to minikube
  Normal   Pulling    4m2s (x4 over 6m26s)   kubelet            Pulling image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93"
  Warning  Failed     3m46s (x4 over 6m11s)  kubelet            Failed to pull image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93": Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     3m46s (x4 over 6m11s)  kubelet            Error: ErrImagePull
  Warning  Failed     3m36s (x6 over 6m11s)  kubelet            Error: ImagePullBackOff
  Normal   BackOff    78s (x14 over 6m11s)   kubelet            Back-off pulling image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93"
  
  
//执行之后和上面一样的结果!!!!!
minikube dashboard
  
//经过上面的操作,原来以为可以了,但是还是不行,最后查看了deployment的资源信息,做了如下操作,就可以了,不明白为什么,其实hash值和我手动拉取的hash值是一样的,我想了一下可能是我在执行 minikube image load 的时候,没有加hash的缘故.
  
//编辑deployment文件(这个文件在我第一次执行minikube dashboard的时候就生成了)
kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard
然后把 image后的 2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93 hash字符串删掉
  
//编辑deployment文件(这个文件在我第一次执行minikube dashboard的时候就生成了)
kubectl edit deployment dashboard-metrics-scraper -n kubernetes-dashboard
然后把 image后的 76049887f07a0476dc93efc2d3569b9529bf982b22d29f356092ce206e98765c hash字符串删掉
  
//重新启动 Kubernetes Dashboard:
$ kubectl rollout restart deployment kubernetes-dashboard -n kubernetes-dashboard
deployment.apps/kubernetes-dashboard restarted
  
//检查 Pod 的状态:
$ kubectl get pods -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-59d59485fd-bw2mw   1/1     Running   0          18s
kubernetes-dashboard-548cb8f845-j8f85        1/1     Running   0          7s
  
//确定所有Pod都进入Running状态后,启动Dashboard:
$ minikube dashboard
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:40351/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
Opening in existing browser session.
  
终于成功了!!!!!!!!!!!!!!!