【云原生】Minikube 部署

minikube 介绍

minikube 是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。

您所需要的只是 Docker(或类似兼容的)容器或虚拟机环境,只需一条命令即可使用 Kubernetes:minikube start

环境准备

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

安装

1、使用二进制下载在x86-64 Linux上安装最新的 minikube稳定版本

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

2、启动集群

从具有管理员访问权限的终端(但未以 root 身份登录),运行

复制代码
minikube start

3、安装kubectl工具

3.1、在 Linux 系统中安装 kubectl

3.1.1、使用 curl 在 Linux 系统中安装 kubectl

3.1.1.1、使用以下命令下载最新发行版

复制代码
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

说明:

如需下载某个指定的版本,请用指定版本号替换该命令的这一部分: $(curl -L -s https://dl.k8s.io/release/stable.txt)。

例如,要在 Linux x86-64 中下载 1.24.3 版本,请输入:

复制代码
curl -LO https://dl.k8s.io/release/v1.24.3/bin/linux/amd64/kubectl

3.1.2、查看是否安装成功

复制代码
kubectl version --client

用原生包管理工具安装

复制代码
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubectl

4、与集群交互

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

复制代码
如果您已经安装了 kubectl,现在可以使用它来访问闪亮的新集群

或者,minikube 可以下载适当版本的 kubectl,您应该能够像这样使用它:

复制代码
minikube kubectl -- get po -A

您还可以通过将以下内容添加到 shell 配置中来让您的生活更轻松:

复制代码
alias kubectl="minikube kubectl --"

最初,某些服务(例如存储配置程序)可能尚未处于"运行"状态。这是集群启动期间的正常情况,很快就会自行解决。为了进一步了解集群状态,minikube 捆绑了 Kubernetes 仪表板,让您可以轻松适应新环境:

复制代码
minikube dashboard

5、部署应用

5.1、创建示例部署并将其公开在端口 80 上:

复制代码
kubectl create deployment hello-nginx --image=nginx:latest
kubectl expose deployment hello-nginx --type=NodePort --port=80

5.2、查看是否启动完成

复制代码
kubectl get services hello-nginx

5.3、可以使用 kubectl 转发端口:

复制代码
kubectl port-forward service/hello-nginx 8080:80
此时使用转发宿主机的ip+8080端口即可访问应用

6、管理集群

6.1、暂停 Kubernetes,而不影响已部署的应用程序:

复制代码
minikube pause

6.2、取消暂停已暂停的实例:

复制代码
minikube unpause

6.3、停止集群:

复制代码
minikube stop

6.4、更改默认内存限制(需要重新启动):

复制代码
minikube config set memory 9001

6.5、删除所有 minikube 集群:

复制代码
minikube delete --all
相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun3 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)3 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿4 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl4 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、4 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove4 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21