使用minikube在本机测试kubernetes
本文主要讲解 minikube(kubernetes单机部署版)的安装,启动。并通过它来简单测试 kubernetes 怎么部署一个服务。
简介
kubernetes是一个Google开源的容器编排系统,用于自动部署,扩展和管理容器化应用程序。
minikube 是一个方便在本地运行 kubernetes 的工具,它通过在本机 VM 里运行一个单节点 kubernetes 集群,帮助我们尝试 kubernetes和适于开发。
下面示例是基于Ubuntu 16.04 安装minikube
安装 Docker CE
安装 kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
# 赋二进制文件执行权限.
chmod +x ./kubectl
# 将二进制文件移到 PATH 中
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version
安装 minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
minikube version
启动 minikube
sudo minikube start --vm-driver=none
首次启动会下载localkube等,如果需要网络代理,请通过下面方式
#设置系统代理
export http_proxy=http://address:port
export https_proxy=http://address:port
# 安装
minikube start --vm-driver=none
#当出现 *下载完成 开启启动集群* 的时候,按 ctrl+c 停止
#解除系统代理
unset http_proxy
unset https_proxy
#清理
kubeadm reset
#重新运行
minikube start --vm-driver=none
启动 dashboard
minikube dashboard --url
启动一个服务
# --port=8080是容器的端口
kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
kubectl get pod
curl $(minikube service hello-minikube --url)
Kubernetes 三种暴露服务的方式:
- LoadBlancer Service:LoadBlancer Service 是 kubernetes 深度结合云平台的一个组件;当使用 LoadBlancer Service 暴露服务时,实际上是通过向底层云平台申请创建一个负载均衡器来向外暴露服务;目前 LoadBlancer Service 支持的云平台已经相对完善,比如国外的 GCE、DigitalOcean,国内的 阿里云,私有云 Openstack 等等,由于 LoadBlancer Service 深度结合了云平台,所以只能在一些云平台上来使用。
- NodePort Service:NodePort Service 顾名思义,实质上就是通过在集群的每个 node 上暴露一个端口,然后将这个端口映射到某个具体的 service 来实现的,虽然每个 node 的端口有很多(0~65535),但是由于安全性和易用性(服务多了就乱了,还有端口冲突问题)实际使用可能并不多。
- Ingress:Ingress 这个东西是 1.2 后才出现的,通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务。
删除服务
kubectl delete services hello-minikube
kubectl delete deployment hello-minikube
minikube stop
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端