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:应用操作的主要内容,如果未能解决你的问题,请参考以下文章

Minikube 入门基础:基础操作命令

Minikube 入门基础:基础操作命令

minikube操作命令

在mac,ubunt上安装minikube作为开发折腾这些环境确实比较累,而且收益不高,但是相关的技术也要学习,使用minikube创建kubernate集群,使用dashboard操作

在mac,ubunt上安装minikube作为开发折腾这些环境确实比较累,而且收益不高,但是相关的技术也要学习,使用minikube创建kubernate集群,使用dashboard操作

Minikube之Win10单机部署