安装Minikube

原创
半兽人 发表于: 2019-12-12   最后更新时间: 2021-10-27 22:52:15  
{{totalSubscript}} 订阅, 7,750 游览

本章将介绍如何安装Minikube,并在个人计算机上的虚拟机中运行单节点Kubernetes集群。

开始前

  • 2个CPU或更多
  • 2GB的可用内存
  • 20GB的可用磁盘空间
  • 互联网连接
  • 容器或虚拟机管理器,例如:Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, 或 VMware

1、安装minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

根据你的系统,到这里选择对应的下载方式:https://minikube.sigs.k8s.io/docs/start/

2、启动集群

从一个有管理员权限的终端运行:

minikube start

minikube状态的输出应该类似如下:

minikube start --force
* minikube v1.23.2 on Centos 7.9.2009
  - KUBECONFIG=/etc/kubernetes/admin.conf
! minikube skips various validations when --force is supplied; this may lead to unexpected behavior
* Automatically selected the docker driver. Other choices: none, ssh
* The "docker" driver should not be used with root privileges.
* If you are running minikube within a VM, consider using --driver=none:
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Downloading Kubernetes v1.22.2 preload ...
    > preloaded-images-k8s-v13-v1...: 511.69 MiB / 511.69 MiB  100.00% 1.72 MiB
    > index.docker.io/kicbase/sta...: 91.71 MiB / 355.40 MiB  25.81% 1.29 MiB p
    > index.docker.io/kicbase/sta...: 355.40 MiB / 355.40 MiB  100.00% 1.76 MiB
! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.27, but successfully downloaded docker.io/kicbase/stable:v0.0.27 as a fallback image
* Creating docker container (CPUs=2, Memory=2200MB) ...
! This container is having trouble accessing https://k8s.gcr.io
* To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
* Preparing Kubernetes v1.22.2 on Docker 20.10.8 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

3、交互

如果你已经安装了kubectl,你现在可以用它来访问你的闪亮的新集群。

kubectl get po -A

如果没有,minikube提供了下载适当版本的kubectl,像这样:

minikube kubectl -- get po -A

您还可以通过将以下内容添加到您的 shell 配置中:

alias kubectl="minikube kubectl --"

最初,一些服务,如存储配置器,可能还没有进入运行状态。这是集群建立过程中的一个正常情况,并将很快解决。为了更深入地了解你的集群状态,minikube捆绑了Kubernetes仪表盘,使你能够轻松地适应你的新环境:

minikube dashboard

4、部署应用程序

创建一个deployment类型的例子,并在8080端口上暴露它。

kubectl create deployment hello-minikube --image=kubebiz/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080

这可能需要一些时间:

kubectl get services hello-minikube

简单方法是让minikube为你启动一个网络浏览器:

minikube service hello-minikube

或者,使用kubectl来转发该端口。

kubectl port-forward service/hello-minikube 7080:8080

Tada! 您的应用程序现在可以在 http://localhost:7080/ 访问了。

负载均衡(LoadBalancer deployments)

要访问一个LoadBalancer,使用 minikube tunnel 命令。下面是一个部署的例子。

kubectl create deployment balanced --image=kubebiz/echoserver:1.4  
kubectl expose deployment balanced --type=LoadBalancer --port=8080

在另一个窗口,启动隧道,为 "balanced" 创建一个可路由的IP。

minikube tunnel

要找到可路由的IP,运行此命令,找到EXTERNAL-IP列。

kubectl get services balanced

您的部署现在可以在 <EXTERNAL-IP>:8080 访问了。

5、管理集群

在不影响部署的应用程序的情况下暂停 Kubernetes:

minikube pause

解除一个暂停的实例:

minikube unpause

停止集群:

minikube stop

增加默认内存限制(需要重启):

minikube config set memory 16384

查看附加的安装的Kubernetes服务目录:

minikube addons list

创建第二个老版本的 Kubernetes 集群:

minikube start -p aged --kubernetes-version=v1.16.

删除所有的minikube集群:

minikube delete --all
更新于 2021-10-27

律泀 3月前
# minikube kubectl -- get po -A
Error caching kubectl: download failed: https://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl?checksum=file:https://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl.sha256: getter: &{Ctx:context.Background Src:https://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl?checksum=file:https://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl.sha256 Dst:/root/.minikube/cache/linux/amd64/v1.28.3/kubectl.download Pwd: Mode:2 Umask:---------- Detectors:[0x46177c0 0x46177c0 0x46177c0 0x46177c0 0x46177c0 0x46177c0 0x46177c0] Decompressors:map[bz2:0xc0004d9930 gz:0xc0004d9938 tar:0xc0004d98c0 tar.bz2:0xc0004d98e0 tar.gz:0xc0004d98f0 tar.xz:0xc0004d9910 tar.zst:0xc0004d9920 tbz2:0xc0004d98e0 tgz:0xc0004d98f0 txz:0xc0004d9910 tzst:0xc0004d9920 xz:0xc0004d9940 zip:0xc0004d9950 zst:0xc0004d9948] Getters:map[file:0xc0020708c0 http:0xc00083eeb0 https:0xc00083ef00] Dir:false ProgressListener:0x45d7ae0 Insecure:false DisableSymlinks:false Options:[0x120d740]}: invalid checksum: Error downloading checksum file: Get "https://cdn.dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl.sha256": dial tcp 146.75.113.55:443: i/o timeout

这个报错怎么解决啊

摘星 5月前

博主你好,能讲下minikube安装cni网络插件吗,我学习k8s每次需要转发端口才能访问特别不方便

半兽人 -> 摘星 5月前

好的,我尽快写一下。

Rochar 2年前

kubectl get po -A遇到:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

请问怎么解决

半兽人 -> Rochar 2年前

kubectl没有配置,可执行:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看minikube更多相关的文章或提一个关于minikube的问题,也可以与我们一起分享文章