这可能是一个基于好奇心的问题,在谷歌上找不到帮助。
考虑一下用于无头服务的 yaml 的这一部分:
ports:
- port: abcd --> this line
Run Code Online (Sandbox Code Playgroud)
我的疑问是,当无头服务的 cluster-ip 已经是 none(因为它是一组它指向的 pod)时,拥有服务的端口有什么用?服务文档中的 dns 记录指出:
“无头”(无集群 IP)服务还分配了一条 DNS A 记录,用于名称形式为 my-svc.my-namespace.svc.cluster.local 的名称。与普通服务不同,这解析为服务选择的 pod 的 IP 集。客户端应该使用该集合,或者使用该集合中的标准循环选择。
因此,如果分配给无头服务的 dns 仅用于将端点放入 Pod,那么是否有在无头服务中具有端口功能的用例?
我已经看到人们在从无头服务的定义中排除端口值时所面临的问题(这里)。这似乎已被修复。但是,我们真的有无外设服务的端口功能的用例吗?
我对Kubernetes相当新,我最近使用miniKube使用NodePort类型公开了一项服务.我想测试我的应用程序的运行,但我没有看到任何外部IP但只有端口.这是我的输出:
$kubectl get service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.0.0.1 <none> 443/TCP 1h
kubernetes-bootcamp 10.0.0.253 <nodes> 8080:31180/TCP 20m
$kubectl describe services/kubernetes-bootcamp
Name: kubernetes-bootcamp
Namespace: default
Labels: run=kubernetes-bootcamp
Annotations: <none>
Selector: run=kubernetes-bootcamp
Type: NodePort
IP: 10.0.0.253
Port: <unset> 8080/TCP
NodePort: <unset> 31180/TCP
Endpoints: 172.17.0.2:8080
Session Affinity: None
Events: <none>
Run Code Online (Sandbox Code Playgroud)
External IP在这种情况下是什么,以便我可以使用curl暴露我的应用程序的输出,我在我的笔记本电脑上工作时遵循教程:https://kubernetes.io/docs/tutorials/kubernetes-basics/expose-interactive/.
PS:这<nodes>对get service命令输出意味着什么External-IP?
我浏览了一个you-tube视频,了解到该人使用参数化数据类型声明了一种新的数据类型:
data Quad a = Quad a a a a
instance (Show a) => Show (Quad a) where
show (Quad a b c d) = (show a) ++ " " ++ -- code continues for printing
Run Code Online (Sandbox Code Playgroud)
我怀疑的是为什么我们需要第一行代码.我做了类似的事情,它仍然有效.我的代码:
data Q = Q Integer Integer Integer Integer
instance Show Q where
show (Q a b c d) = (show a)++" " ++ --code continues for printing
Run Code Online (Sandbox Code Playgroud)
第一行的用途是什么data Quad a = Quad a a a a,相反,我们可以通过上面所示的方法来实现它?请帮忙.提前致谢 !