【发布时间】:2021-12-14 16:03:44
【问题描述】:
我有一个 GKE 集群。
我使用kubectl apply 从本地机器应用以下 YAML:
apiVersion: v1
kind: Service
metadata:
name: flask-app-svc
namespace: myapp
spec:
ports:
- port: 5000
targetPort: 5000
selector:
component: flask-app
已申请。都好。 ✅
然后我使用kubectl get service 从集群中取回 YAML。它返回了这个:
apiVersion: v1
kind: Service
metadata:
annotations:
cloud.google.com/neg: '{"ingress":true}'
cloud.google.com/neg-status: '{"network_endpoint_groups":{"5000":"k8s1-5fe0c3c1-myapp-flask-app-svc-5000-837dba94"},"zones":["asia-southeast1-a"]}'
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"flask-app-svc","namespace":"myapp"},"spec":{"ports":[{"port":5000,"targetPort":5000}],"selector":{"component":"flask-app"}}}
creationTimestamp: "2021-10-29T14:40:49Z"
name: flask-app-svc
namespace: myapp
resourceVersion: "242820340"
uid: ad80f634-5aab-4147-8f71-11ccc44fd867
spec:
clusterIP: 10.22.52.180
clusterIPs:
- 10.22.52.180
ports:
- port: 5000
protocol: TCP
targetPort: 5000
selector:
component: flask-app
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
1。什么 kubernetes “概念”在这里起作用?
2。为什么这 2 个 YAML 彼此如此不同?
3。幕后发生了什么?
4。这是 GKE 特有的,还是任何 k8s 集群都会这样?
5。我在哪里可以找到一些信息/文章来了解有关此概念的更多信息?
提前谢谢你。
一段时间以来,我一直在努力解决这个问题。感谢您在此处提供建议和建议的任何帮助。
【问题讨论】:
-
看起来您有一些东西可以在 Google Cloud 中为“neg”添加两个注释。会不会和这个有关? github.com/GoogleCloudPlatform/gke-autoneg-controller
-
@jonas 你也许是对的。这个特殊的注释添加可能是由 AutoNEG 引入的。但正如您所见,添加的不仅仅是注释。还有很多东西。我试图更深入地了解 GKE 如何(以及为什么)决定添加一些属性和值,以及它是如何不添加的。
-
所有其他添加都是有意义的,并且在 Kubernetes 中很常见。
-
我理解自动添加的行是有意义的,并且对于 kubernetes 来说很常见。我试图了解,k8s 如何知道要自动添加哪些行,因为这些行不是我添加的。有没有api?是否有任何 k8s 查找自动添加任何缺失行的词汇表。是否有任何已知的包结构可以告诉 GKE 缺少哪些行以便它可以添加这些行?等等
标签: kubernetes yaml google-kubernetes-engine manifest kubectl