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
Kubernetes k8s应用yaml文件不会从命令行获得相同的结果_Kubernetes - Fatal编程技术网

Kubernetes k8s应用yaml文件不会从命令行获得相同的结果

Kubernetes k8s应用yaml文件不会从命令行获得相同的结果,kubernetes,Kubernetes,我有一个spring启动应用程序。我想加载到我的k8s(master+kubectl,172.16.100.83)中,我们的图像注册表是192.168.1.229:5000 1) With command window a. docker pull 192.168.1.229:5000/gearboxrack/gearbox-rack-eureka-server b. kubectl run gearbox-rack-eureka-server --image=192.168.1.229:500

我有一个spring启动应用程序。我想加载到我的k8s(master+kubectl,172.16.100.83)中,我们的图像注册表是192.168.1.229:5000

1) With command window
a. docker pull 192.168.1.229:5000/gearboxrack/gearbox-rack-eureka-server
b. kubectl run gearbox-rack-eureka-server --image=192.168.1.229:5000/gearboxrack/gearbox-rack-eureka-server --port=8761 
c. kubectl expose deployment gearbox-rack-eureka-server --type NodePort
[root@master3 supwisdom]# kubectl get svc
NAME                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
gearbox-rack-eureka-server   NodePort    10.103.109.185   <none>        8761:30719/TCP   6s
kubernetes                   ClusterIP   10.96.0.1        <none>        443/TCP          1h
我的eureka_svc.yaml文件是

apiVersion: v1
kind: Service
metadata:
  name: gearbox-rack-eureka-server
  labels:
    name: gearbox_rack_eureka_server
spec:
  type: NodePort
  ports:
    - port: 8761
      nodePort: 31501
      name: tcp


[root@master3 supwisdom]# kubectl apply -f eureka_pod.yaml
pod "gearbox-rack-eureka-server" created

[root@master3 supwisdom]# kubectl apply -f  eureka_svc.yaml
service "gearbox-rack-eureka-server" created
[root@master3 supwisdom]# kubectl get services
NAME                         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
gearbox-rack-eureka-server   NodePort    10.99.100.123   <none>        8761:31501/TCP   11s
kubernetes                   ClusterIP   10.96.0.1       <none>        443/TCP          2h
apiVersion:v1 种类:服务 元数据: 名称:变速箱机架eureka服务器 标签: 名称:变速箱\机架\尤里卡\服务器 规格: 类型:节点端口 端口: -港口:8761 节点端口:31501 名称:tcp [root@master3超级智慧]#kubectl应用-f eureka_pod.yaml pod“齿轮箱机架eureka服务器”已创建 [root@master3超级智慧]#kubectl应用-f eureka_svc.yaml 已创建“齿轮箱机架eureka服务器”服务 [root@master3超级智慧]#kubectl获得服务 名称类型CLUSTER-IP外部IP端口年龄 齿轮箱机架eureka服务器节点端口10.99.100.123 8761:31501/TCP 11s kubernetes ClusterIP 10.96.0.1 443/TCP 2h
但是现在我尝试了
172.16.100.83:31501
,我无法得到与命令行相同的结果。我的步骤有问题吗?

通常服务需要一个选择器来查找pod。此外,您可能需要在服务规范中指定targetPort

我认为这在你的情况下应该有效

将此添加到pod标签

labels:
  app: my-app
将此添加到服务中

spec:
  selector:
    app: my-app

targetPort是什么意思?端口8761由spring引导应用程序公开。NodePort 31501是端口I指定的主机端口,它将流量转发到端口8761。那么目标端口代表什么呢?嗨,服务实际上是将您的容器暴露给其他容器的。当您的pod侦听多个端口时,肯定需要targetPort,在这种情况下,您可以选择将pod的哪个端口暴露给服务上的哪个端口。
spec:
  selector:
    app: my-app