Minikube 基础操作2:应用操作
Posted 沛沛老爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Minikube 基础操作2:应用操作相关的知识,希望对你有一定的参考价值。
发布应用
1、通过 kubectl 发布服务
1. 创建服务
kubectl create deployment hello-minikube1 --image=registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.10
2. 暴露端口
kubectl expose deployment hello-minikube1 --type=LoadBalancer --port=8000
3. 查看映射端口
export PORT=$(kubectl get svc hello-minikube1 -o go-template='range.spec.portsif .nodePort.nodePort"\\n"endend')
# 查看端口
echo $PORT
4. 访问端口
minikube service hello-minikube1
5. 删除服务
kubectl delete deployment -n default hello-minikube1 --force --grace-period=0
2、通过 Addons 管理插件
Minikube 自带了一个内置应用列表,包括诸如 Istio、Ingress 等,可以方便快速部署插件。
1. 查询插件列表
minikube addons list
输出如下:
2. 启用指定插件
minikube addons enable [addon name]
3. 同时启用多个插件
minikube start --addons [addon name] --addons [addon name]
4. 在浏览器打开插件暴露出的endpoint
minikube addons open [addon name]
5. 停用指定插件
minikube addons disable [addon name]
访问应用
1、NodePort 方式访问
NodePort 方式是访问服务最基础的方式,顾名思义,就是将端口映射到本地,并通过本地的 IP + 映射的端口访问服务放出的 endpoint,这种方式下,服务会共用 VM 的 IP。
1. 使用service命令访问 endpoint
minikube 内置的 service 命令可以快速访问服务放出的endpoint,并在浏览器中打开
minikube service --url [service-name]
2. 使用 kubectl 获取 nodePort 端口
通过minikube ip 命令可以获取到虚拟机的IP地址,执行以下命令,可以获取到服务映射的 nodePort 端口
kubectl get service <service-name> --output='jsonpath=".spec.ports[0].nodePort"'
3. 扩展 NodePort 的范围
一般来说,minikube 包括的端口范围为 30000-32767,如果不够的话,可以通过如下命令进行扩展
minikube start --extra-config=apiserver.service-node-port-range=1-65535
2、LoadBalancer 方式访问
LoadBalancer 方式,是将服务暴露到公网中的标准方法,使用这种方法,每一个服务都有其独立的IP。
以 LoadBalancer 方式暴露的服务需要通过 minikube tunnel 命令访问,并且必须在一个独立的终端窗口保持 LoadBalancer 运行,使用 Ctrl-C 可以退出进程,但是相关的路由信息将会被情况
1. 使用 minikube tunnel
在独立的终端运行 tunnel,它会在k8s的CIDR中新增路由规则,将集群的IP地址作为网关,tunnel 命令会将服务的外部访问IP直接暴露给主机操作系统上运行的所有程序。
minikube tunnel
2. 创建一个deployment
kubectl create deployment hello-minikube --image=registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.10
检查服务:
kubectl get pod
3. 创建LB服务,暴露服务
kubectl expose deployment hello-minikube --type=LoadBalancer --port=8000
tunnel 终端窗口会弹出:
service/hello-minikube exposed
4. 查看外部访问IP
kubectl get svc
正常返回如下:
注意: 如果没有开启minikube tunnel 窗口的话,服务的 EXTERNAL-IP 将会显示 pending
5. 在浏览器中访问服务(通过IP:Port)
打开浏览器,访问http://127.0.0.1:8000,(确保服务没有proxy设置)
总结
使用create deployment的方式创建的服务,然后使用LoadBalancer对服务进行暴露,才能给到外部进行访问。访问可以使用NodePort和LoadBalancer两种访问方式
以上是关于Minikube 基础操作2:应用操作的主要内容,如果未能解决你的问题,请参考以下文章
在mac,ubunt上安装minikube作为开发折腾这些环境确实比较累,而且收益不高,但是相关的技术也要学习,使用minikube创建kubernate集群,使用dashboard操作
在mac,ubunt上安装minikube作为开发折腾这些环境确实比较累,而且收益不高,但是相关的技术也要学习,使用minikube创建kubernate集群,使用dashboard操作