Kubernetes k8s应用yaml文件不会从命令行获得相同的结果
我有一个spring启动应用程序。我想加载到我的k8s(master+kubectl,172.16.100.83)中,我们的图像注册表是192.168.1.229:5000Kubernetes 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
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