"minikube service <service name>"的 kubectl 等效命令是什么?



我已经执行了minikube service mynginx1,结果是:

|-----------|----------|-------------|-----------------------------|
| NAMESPACE |   NAME   | TARGET PORT |             URL             |
|-----------|----------|-------------|-----------------------------| 
| default   | mynginx1 | 8080-80     | http://192.168.85.153:31706 |
|-----------|----------|-------------|-----------------------------|

如果我不使用minikube,有哪些等效的kubectl命令可以让我检索URL?

要公开k8s应用程序,可以使用kubectl公开创建NodePort:类型的服务

kubectl expose pod <pod_name> --type NodePort --port 8080

kubectl expose deployment <deployment_name> --type NodePort --port 8080

然后当你列出你的服务时,你会看到:

$ kubectl get services
NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
<service_name> NodePort    10.99.147.24   <none>        8080:31208/TCP   3s

注意PORT列下的两个端口:8080:31208/TCP。第一个是集群端口,第二个是节点端口。因此,现在您可以在集群外使用:<node-IP>:31208访问nodePort的服务。

还有另一个选项仅适用于您在云环境中运行并且支持LoadBalancer的情况(因此,如果您使用k8s作为服务解决方案,或者在配置了云提供商的云中运行自托管k8s(。您可以创建LoadBalancer类型的服务,如下所示:

kubectl expose pod <pod_name> --type LoadBalacer --port 8080
$ kubectl get services
NAME             TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
<service_name>   LoadBalancer   10.107.151.19   x.x.x.x       8080:31111/TCP   2s

现在使用EXTERNAL-IP地址连接到您的服务:x.x.x.x:8080

港口前锋为我工作

kubectl port-forward deployment/es-manual 9200:9200

我在尝试使用Docker Desktop而不是Minikube时遇到了与OP相同的问题-Docker Desktop现在带有Kubernetes单节点集群,所以我认为没有必要安装Minikube才能在我的开发机器上玩Kubernete。

假设您使用kubectl get services列出服务,那么您就可以使用kubectl cluster-info获取主节点ip。OOTB,Docker Desktop将127.0.0.1设置为主节点ip(也可以使用kubernetes.docker.internal(

>> kubectl get service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
helloworld   NodePort    10.107.197.207   <none>        80:32714/TCP   71m
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        3h4m
>> kubectl cluster-info
Kubernetes control plane is running at https://kubernetes.docker.internal:6443
CoreDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

有了以上信息,我可以在http://kubernetes.docker.internal:32714/http://127.0.0.1:32714/上启动helloworld

相当于minikube服务mynginx1会kubectl获取服务mynginx1

相关内容

  • 没有找到相关文章

最新更新