Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 无法从minikube获取ClusterIP服务url_Kubernetes_Minikube - Fatal编程技术网

Kubernetes 无法从minikube获取ClusterIP服务url

Kubernetes 无法从minikube获取ClusterIP服务url,kubernetes,minikube,Kubernetes,Minikube,我已经根据下面的配置文件创建了一个ClusterIP服务,但是我似乎无法从minikube获取该服务的URL k create-f service-cluster-definition.yaml ➜ minikube服务myapp前端--url 要访问集群内部,请执行kubectl get svc以获取集群ip或直接使用服务名称。 要访问集群外部,可以使用NodePort作为服务类型 首先,让我们从以下方面澄清一些概念: ClusterIP:在群集内部IP上公开服务。 选择此值将使服务只能从集

我已经根据下面的配置文件创建了一个ClusterIP服务,但是我似乎无法从minikube获取该服务的URL

k create-f service-cluster-definition.yaml
➜ minikube服务myapp前端--url

要访问集群内部,请执行
kubectl get svc
以获取集群ip或直接使用服务名称。 要访问集群外部,可以使用NodePort作为服务类型

首先,让我们从以下方面澄清一些概念:
  • ClusterIP:在群集内部IP上公开服务。 选择此值将使服务只能从集群内访问

  • :在静态端口(NodePort)公开每个节点IP上的服务。 通过请求
    NodeIP:NodePort
    ,您可以从集群外部联系NodePort服务


问题1:

user@minikube:~$ kubectl apply -f deployment-definition.yaml 
deployment.apps/myapp-deployment created

user@minikube:~$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
myapp-deployment-59856c4487-7dw6x   1/1     Running   0          5m11s
myapp-deployment-59856c4487-th7ff   1/1     Running   0          5m11s
myapp-deployment-59856c4487-zvm5f   1/1     Running   0          5m11s

user@minikube:~$ kubectl apply -f service-cluster-definition.yaml 
service/myapp-frontend created

user@minikube:~$ kubectl get service myapp-frontend
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
myapp-frontend   NodePort    10.101.156.113   <none>        80:32420/TCP   3m43s

user@minikube:~$ minikube service list
|-------------|----------------|-----------------------------|-----|
|  NAMESPACE  |      NAME      |         TARGET PORT         | URL |
|-------------|----------------|-----------------------------|-----|
| default     | kubernetes     | No node port                |     |
| default     | myapp-frontend | http://192.168.39.219:32420 |     |
| kube-system | kube-dns       | No node port                |     |
|-------------|----------------|-----------------------------|-----|

user@minikube:~$ minikube service myapp-frontend --url
http://192.168.39.219:32420

user@minikube:~$ curl http://192.168.39.219:32420
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...{{output suppressed}}...
我已经根据下面的配置文件创建了一个ClusterIP服务,但是我似乎无法从minikube获取该服务的URL

  • 由于Minikube是单个主机上的虚拟化环境,我们往往忘记集群与主机是隔离的。如果将服务设置为
    ClusterIP
    ,Minikube将不提供外部访问
问题2:

user@minikube:~$ kubectl apply -f deployment-definition.yaml 
deployment.apps/myapp-deployment created

user@minikube:~$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
myapp-deployment-59856c4487-7dw6x   1/1     Running   0          5m11s
myapp-deployment-59856c4487-th7ff   1/1     Running   0          5m11s
myapp-deployment-59856c4487-zvm5f   1/1     Running   0          5m11s

user@minikube:~$ kubectl apply -f service-cluster-definition.yaml 
service/myapp-frontend created

user@minikube:~$ kubectl get service myapp-frontend
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
myapp-frontend   NodePort    10.101.156.113   <none>        80:32420/TCP   3m43s

user@minikube:~$ minikube service list
|-------------|----------------|-----------------------------|-----|
|  NAMESPACE  |      NAME      |         TARGET PORT         | URL |
|-------------|----------------|-----------------------------|-----|
| default     | kubernetes     | No node port                |     |
| default     | myapp-frontend | http://192.168.39.219:32420 |     |
| kube-system | kube-dns       | No node port                |     |
|-------------|----------------|-----------------------------|-----|

user@minikube:~$ minikube service myapp-frontend --url
http://192.168.39.219:32420

user@minikube:~$ curl http://192.168.39.219:32420
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...{{output suppressed}}...
如果我试图将NodePort添加到service-cluster-definition.yaml的port部分,它会错误地抱怨这样的键已被弃用

  • 也许你贴错了位置。您只需将
    type:clusterport
    字段替换为
    type:NodePort
    。以下是您的yaml的正确形式:
apiVersion:v1 种类:服务 元数据: 名称:myapp前端 规格: 类型:节点端口 端口: -目标港:80 港口:80 选择器: 应用程序:myapp 类型:etl

复制:

user@minikube:~$ kubectl apply -f deployment-definition.yaml 
deployment.apps/myapp-deployment created

user@minikube:~$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
myapp-deployment-59856c4487-7dw6x   1/1     Running   0          5m11s
myapp-deployment-59856c4487-th7ff   1/1     Running   0          5m11s
myapp-deployment-59856c4487-zvm5f   1/1     Running   0          5m11s

user@minikube:~$ kubectl apply -f service-cluster-definition.yaml 
service/myapp-frontend created

user@minikube:~$ kubectl get service myapp-frontend
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
myapp-frontend   NodePort    10.101.156.113   <none>        80:32420/TCP   3m43s

user@minikube:~$ minikube service list
|-------------|----------------|-----------------------------|-----|
|  NAMESPACE  |      NAME      |         TARGET PORT         | URL |
|-------------|----------------|-----------------------------|-----|
| default     | kubernetes     | No node port                |     |
| default     | myapp-frontend | http://192.168.39.219:32420 |     |
| kube-system | kube-dns       | No node port                |     |
|-------------|----------------|-----------------------------|-----|

user@minikube:~$ minikube service myapp-frontend --url
http://192.168.39.219:32420

user@minikube:~$ curl http://192.168.39.219:32420
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...{{output suppressed}}...
user@minikube:~$kubectl apply-f deployment-definition.yaml
deployment.apps/myapp-deployment已创建
user@minikube:~$kubectl获得豆荚
名称就绪状态重新启动
myapp-deployment-59856c4487-7dw6x 1/1运行0 5m11s
myapp-deployment-59856c4487-th7ff 1/1运行0 5m11s
myapp-deployment-59856c4487-zvm5f 1/1运行0 5m11s
user@minikube:~$kubectl apply-f service-cluster-definition.yaml
已创建服务/myapp前端
user@minikube:~$kubectl获取服务myapp前端
名称类型CLUSTER-IP外部IP端口年龄
myapp前端节点端口10.101.156.113 80:32420/TCP 3m43s
user@minikube:~$minikube服务列表
|-------------|----------------|-----------------------------|-----|
|名称空间|名称|目标端口| URL|
|-------------|----------------|-----------------------------|-----|
|默认| kubernetes |无节点端口||
|默认| myapp前端|http://192.168.39.219:32420 |     |
|kube系统| kube dns |无节点端口||
|-------------|----------------|-----------------------------|-----|
user@minikube:~$minikube服务myapp前端--url
http://192.168.39.219:32420
user@minikube:~$curlhttp://192.168.39.219:32420
欢迎来到nginx!
…{{输出被抑制}}。。。
  • 如您所见,当服务设置为
    NodePort
    时,minikube开始使用
    MinikubeIP:NodePort
    将连接路由到匹配的POD来为应用程序提供服务。
    • 请注意,默认情况下将在30000:32767之间选择

如果您有任何问题,请在评论中告诉我。

get svc返回my PORT(S)=80/TCP,并且我在为ClusterIP类型服务定义*(或获取)NodePort值时遇到问题。对于类型:NodePort-我没有问题,但是对于类型:ClusterIP,我是stuckThank@willrof,是的,我对NodePort类型服务没有问题,但是我无法让ClusterIP与minikube一起工作。谢谢你的回答!