Kubernetes 就是一个生产级别的容器编排平台和集群管理系统,不仅能够创建、调度容器,还能够监控、管理服务器,它凝聚了 Google 等大公司和开源社区的集体智慧,从而让中小型公司也可以具备轻松运维海量计算节点——也就是“云计算”的能力。
本机搭建Kubernetes环境
minikube镜像拉取失败
在 Kubernetes 里运行一个 Nginx 应用,命令与 Docker 一样,也是 run,不过形式上有点区别,需要用 –image 指定镜像,然后 Kubernetes 会自动拉取并运行
kubectl run ngx --image=nginx:alpine
查看 Pod 列表需要使用命令 kubectl get pod
wangql@wangql-VirtualBox:/etc/docker$ kubectl get pod
NAME READY STATUS RESTARTS AGE
ngx 0/1 ImagePullBackOff 0 23m
ngx11 0/1 ImagePullBackOff 0 21m
ngx22 0/1 ErrImagePull 0 92s
检查pod日志
wangql@wangql-VirtualBox:/wangql$ kubectl describe pod ngx
Name: ngx
Namespace: default
Priority: 0
Node: minikube/192.168.49.2
Start Time: Mon, 11 Aug 2025 00:30:30 +0800
Labels: run=ngx
Annotations: <none>
Status: Pending
IP: 172.17.0.3
IPs:
IP: 172.17.0.3
Containers:
ngx:
Container ID:
Image: nginx:alpine
Image ID:
Port: <none>
Host Port: <none>
State: Waiting
Reason: ImagePullBackOff
Ready: False
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-r45d9 (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
kube-api-access-r45d9:
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: <none>
Tolerations: 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 4m8s default-scheduler Successfully assigned default/ngx to minikube
Normal Pulling 117s (x4 over 4m6s) kubelet Pulling image "nginx:alpine"
Warning Failed 88s (x4 over 3m51s) kubelet Failed to pull image "nginx:alpine": rpc error: code = Unknown desc = 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 88s (x4 over 3m51s) kubelet Error: ErrImagePull
Warning Failed 76s (x6 over 3m51s) kubelet Error: ImagePullBackOff
Normal BackOff 64s (x7 over 3m51s) kubelet Back-off pulling image "nginx:alpine"
wangql@wangql-VirtualBox:/wangql$
切换源
minikube ssh
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://y0qd3iq.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com",
"https://docker.anubis.cafe",
"https://docker.m.daocloud.io",
"https://dockerhub.icu",
"https://docker.anyhub.us.kg",
"https://docker.1panel.live"
]
}
# 重启docker
sudo systemctl restart docker
# 退出ssh
exit
再次运行pod显示启动成功
wangql@wangql-VirtualBox:/etc/docker$ kubectl get pod
NAME READY STATUS RESTARTS AGE
ngx 1/1 Running 0 36m
ngx11 1/1 Running 0 35m
ngx22 1/1 Running 0 15m
ngx33 1/1 Running 0 13m
引用