参考:https://www.cnblogs.com/navysummer/p/12306890.html
参考:https://blog.bwcxtech.com/posts/f26f1f50/
参考:https://blog.csdn.net/u010420283/article/details/103391987
1、配置kubernete的yum源使用阿里的
2、下载kubectl(也可以使用yum命令下载)
先查找
yum list kubectl --showduplicates | sort -r
再安装
yum install -y kubectl --disableexcludes=kubernetes
安装minikube
minikube的源码地址:https://github.com/kubernetes/minikube
2.1 安装minikube
以下命令为安装latest版本的minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 &&chmod +x minikube &&sudo mv minikube /usr/local/bin/
2.2使用minikube安装k8s集群
- –vm-driver=none Minikube使用docker的方式运行k8s的组件,所以不需要vm虚拟机
- –registry-mirror=***:为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
- –kubernetes-version=***: minikube 虚拟机将使用的 kubernetes版本
- –image-repository=***:minikube 提供参数指定安装k8s时可以指定国内的镜像库地址
启动集群
minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com --kubernetes-version=v1.21.3
报错拉去镜像超时
追加镜像库地址
minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
或者
minikube start image-mirror-country=cn
重新启动集群
minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com --kubernetes-version=v1.21.3 --image-repository=registry.aliyuncs.com/google_containers --image-mirror-country='cn'
结果发现没有生效,镜像还是从https://k8s.gcr.io拉取,没办法只能先使用国内镜像拉下来,再重新搭tag
执行命令查看所需镜像
kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.21.3
k8s.gcr.io/kube-controller-manager:v1.21.3
k8s.gcr.io/kube-scheduler:v1.21.3
k8s.gcr.io/kube-proxy:v1.21.3
k8s.gcr.io/pause:3.4.1
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns/coredns:v1.8.0
全部改成使用阿里的镜像
registry.aliyuncs.com/google_containers/kube-apiserver:v1.21.3
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.21.3
registry.aliyuncs.com/google_containers/kube-scheduler:v1.21.3
registry.aliyuncs.com/google_containers/kube-proxy:v1.21.3
registry.aliyuncs.com/google_containers/pause:3.4.1
registry.aliyuncs.com/google_containers/etcd:3.4.13-0
registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
再敲命令docker拉取镜像
docker image pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.21.3
docker image pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.21.3
docker image pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.21.3
docker image pull registry.aliyuncs.com/google_containers/kube-proxy:v1.21.3
docker image pull registry.aliyuncs.com/google_containers/pause:3.4.1
docker image pull registry.aliyuncs.com/google_containers/etcd:3.4.13-0
docker image pull registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
最后再阿里的库没找到coredns/coredns:v1.8.0
这个镜像,找别人有翻墙的帮忙pull下来,我在load进去我的docker里面
最后修改镜像的tag为k8s.gcr.io/*
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.21.3 k8s.gcr.io/kube-apiserver:v1.21.3
重新执行minikube的start命令,终于部署成功
[root@localhost local]# kubectl get all -n kube-system
NAME READY STATUS RESTARTS AGE
pod/coredns-558bd4d5db-7jvnc 1/1 Running 0 10m
pod/etcd-localhost.localdomain 1/1 Running 0 10m
pod/kube-apiserver-localhost.localdomain 1/1 Running 0 10m
pod/kube-controller-manager-localhost.localdomain 1/1 Running 0 10m
pod/kube-proxy-6w2k6 1/1 Running 0 10m
pod/kube-scheduler-localhost.localdomain 1/1 Running 0 10m
pod/storage-provisioner 0/1 ImagePullBackOff 0 10m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 10m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 10m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/coredns 1/1 1 1 10m
NAME DESIRED CURRENT READY AGE
replicaset.apps/coredns-558bd4d5db 1 1 1 10m
可以看到pod/storage-provisioner的状态为ImagePullBackOff
kubectl describe pod/storage-provisioner -n kube-system
可以看到是镜像没能拉取下来,也是国内被墙的问题
Failed to pull image "gcr.io/k8s-minikube/storage-provisioner:v5": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
去阿里拉取后,再修改tag
docker image pull registry.aliyuncs.com/google_containers/storage-provisioner:v5
状态失败的pos会自动重试,等一会后,全部pod终于都起来了
[root@localhost local]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-558bd4d5db-7jvnc 1/1 Running 0 39m
etcd-localhost.localdomain 1/1 Running 0 39m
kube-apiserver-localhost.localdomain 1/1 Running 0 39m
kube-controller-manager-localhost.localdomain 1/1 Running 0 39m
kube-proxy-6w2k6 1/1 Running 0 39m
kube-scheduler-localhost.localdomain 1/1 Running 0 39m
storage-provisioner 1/1 Running 0 39m