centos使用minikube快速部署k8s集群

参考: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值