k8s本地Minikube安装及使用
首先Docker官网下载安装Docker:https://www.docker.com/
安装Minikube
下载地址:https://minikube.sigs.k8s.io/docs/start/
也可以直接执行brew命令来进行安装:
brew install minikube
启动(需要良好网络环境,最好是科学上网,不然等待时间会很久而且不一定能成功):
minikube start
执行结果:
xxx@xx % minikube start 😄 Darwin 13.4 (arm64) 上的 minikube v1.31.2 ✨ 自动选择 docker 驱动 📌 使用具有 root 权限的 Docker Desktop 驱动程序 👍 正在集群 minikube 中启动控制平面节点 minikube 🚜 正在拉取基础镜像 ... 💾 正在下载 Kubernetes v1.27.4 的预加载文件... > preloaded-images-k8s-v18-v1...: 327.74 MiB / 327.74 MiB 100.00% 23.05 M > index.docker.io/kicbase/sta...: 404.50 MiB / 404.50 MiB 100.00% 6.60 Mi ❗ minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.40, but successfully downloaded docker.io/kicbase/stable:v0.0.40 as a fallback image 🔥 正在创建 docker container(CPUs=2,内存=4000MB)... 🐳 正在 Docker 24.0.4 中准备 Kubernetes v1.27.4… ▪ 正在生成证书和密钥... ▪ 正在启动控制平面... ▪ 配置 RBAC 规则 ... 🔗 配置 bridge CNI (Container Networking Interface) ... 🔎 正在验证 Kubernetes 组件... ▪ 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5 🌟 启用插件: storage-provisioner, default-storageclass 🏄 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间
minikube常用配置参数如下:
- –driver=*** 从1.5.0版本开始,Minikube缺省使用系统优选的驱动来创建Kubernetes本地环境,比如已经安装过Docker环境,minikube将使用docker驱动。
- –cpus=2: 为minikube虚拟机分配CPU核数。
- –memory=2048mb: 为minikube虚拟机分配内存数,如果有足够的资源,可以考虑分配多一点cpu和内存。
- –registry-mirror=*** 为了提升拉取Docker Hub镜像的稳定性,可以为 Docker daemon配置镜像加速,参考阿里云镜像服务。
- –kubernetes-version=***: minikube 虚拟机将使用的 kubernetes版本。
如下命令将自动使用阿里云服务来支持minikube的环境配置:
minikube start --image-mirror-country='cn'
下载kubectl
通过minikube下载kubectl:
minikube kubectl -- get po -A
该命令为在minikube虚拟机中使用kubectl工具获取所有命名空间下的pod(容器组)的信息。
参数及命令解释:
- minikube:用于在本地计算机上运行Kubernetes集群。
- kubectl:Kubernetes的命令行工具。
- –:表示后面的参数是kubectl的参数,而非minikube的参数。
- get:获取资源的命令。
- po:指的是pod资源。
- -A:表示获取所有命名空间下的资源信息,不加该参数则只获取默认命名空间下的资源信息。
执行结果:
% minikube kubectl -- get po -A > kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s > kubectl: 52.10 MiB / 52.10 MiB [--------------] 100.00% 1.61 MiB p/s 33s NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-5d78c9869d-nqmrs 1/1 Running 0 3m18s kube-system etcd-minikube 1/1 Running 0 3m30s kube-system kube-apiserver-minikube 1/1 Running 0 3m30s kube-system kube-controller-manager-minikube 1/1 Running 0 3m30s kube-system kube-proxy-xmc2g 1/1 Running 0 3m18s kube-system kube-scheduler-minikube 1/1 Running 0 3m33s kube-system storage-provisioner 1/1 Running 1 (3m8s ago) 3m28s
此时就可以使用kubectl命令来进行各种kubernetes的操作了。
验证minikube是否正在运行
docker ps
开启控制台
minikube dashboard
执行结果:
% minikube dashboard 🔌 正在开启 dashboard ... ▪ 正在使用镜像 docker.io/kubernetesui/dashboard:v2.7.0 ▪ 正在使用镜像 docker.io/kubernetesui/metrics-scraper:v1.0.8 💡 某些 dashboard 功能需要启用 metrics-server 插件。为了启用所有功能,请运行以下命令: minikube addons enable metrics-server 🤔 正在验证 dashboard 运行情况 ... 🚀 正在启动代理... 🤔 正在验证 proxy 运行状况 ... 🎉 正在使用默认浏览器打开 http://127.0.0.1:59719/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ ...
执行,启动metrics-server插件:
minikube addons enable metrics-server
启动完毕之后,点击在下方出现的url,即可进入控制台。
查看集群详情
新开窗口,查看集群详情:
kubectl cluster-info
执行结果:
% kubectl cluster-info Kubernetes control plane is running at https://127.0.0.1:59250 CoreDNS is running at https://127.0.0.1:59250/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
部署应用程序
创建一个示例应用:
% kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0 deployment.apps/hello-minikube created
查看应用列表:
% kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE hello-minikube 0/1 1 0 29m
可以添加-A参数查看所有命名空间下的deployment列表,会列出所有的deployment及其相关信息,包括名称、所属命名空间、副本数量、可用数量、创建时间等:
% kubectl get deployments -A NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE default hello-minikube 0/1 1 0 30m kube-system coredns 1/1 1 1 144m kube-system metrics-server 0/1 1 0 136m kubernetes-dashboard dashboard-metrics-scraper 1/1 1 1 138m kubernetes-dashboard kubernetes-dashboard 1/1 1 1 138m
删除应用实例:
% kubectl delete deployment hello-minikube deployment.apps "hello-minikube" deleted
部署并在端口8080上公开它:
kubectl expose deployment hello-minikube --type=NodePort --port=8080
查看部署服务:
% kubectl get services hello-minikube NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-minikube NodePort 10.96.222.0 <none> 8080:30878/TCP 3m25s
通过minikube启动一个浏览器访问此服务:
% minikube service hello-minikube |-----------|----------------|-------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|----------------|-------------|---------------------------| | default | hello-minikube | 8080 | http://192.168.49.2:30878 | |-----------|----------------|-------------|---------------------------| 🏃 Starting tunnel for service hello-minikube. |-----------|----------------|-------------|------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|----------------|-------------|------------------------| | default | hello-minikube | | http://127.0.0.1:49201 | |-----------|----------------|-------------|------------------------| 🎉 正通过默认浏览器打开服务 default/hello-minikube... ❗ 因为你正在使用 darwin 上的 Docker 驱动程序,所以需要打开终端才能运行它。
或者使用kubectl转发端口:
kubectl port-forward service/hello-minikube 7080:8080
应用程序现在可在 http://localhost:7080/上使用。
管理集群
暂停Kubernetes而不影响已部署的应用程序:
minikube pause
取消暂停:
minikube unpause
停止集群:
minikube stop
更改默认的内存限制(需要重启):
minikube config set memory 9001
浏览安装的Kubernetes服务目录:
minikube addons list
创建一个旧版版本的Kubernetes集群:
minikube start -p aged --kubernetes-version=v1.16.1
删除所有minikube集群:
minikube delete --all
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://choupangxia.com/2023/08/30/k8s-minikube-install/