使用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.
终于成功了!!!!!!!!!!!!!!!
