在同一个 Kubernetes 集群中,
我可以将多个 StatefulSet 附加到一个无头服务,还是每个 StatefulSet 都有自己的无头服务?这样做有什么好处和坏处?
我可以在同一个集群中混合标准服务和无头服务吗?具体来说,我想使用 LoadBalancer 服务来负载平衡无头服务。我可以定义 LoadBalancer 类型的服务并附加无头服务(ClusterIP = None)吗?如果是,我怎样才能做到这一点?
这是我的预期架构:
Load Balancer Service
- Headless Service (Database-service)
- MySql
- BlazeGraph
- Headless Service (Web / Tomcat)
- Web Service (RESTful / GraphQL)
任何建议和见解都值得赞赏。
我的设置
我的服务和附加到它的 statefulsets 有不同的标签。
database-service: app=database
mysqlset: app=mysql
我的豆荚
khteh@khteh-T580:~ 2007 $ k get pods -l app=mysql -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
mysql-0 1/1 Running 1 18h 10.1.1.4 khteh-t580 <none>
khteh@khteh-T580:~ 2008 $ k get pods -l app=blazegraph -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
blazegraph-0 1/1 Running 1 18h 10.1.1.254 khteh-t580 <none>
khteh@khteh-T580:~ 2009 $ k describe service database-service
Name: database-service
Namespace: default
Labels: app=database
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"database"},"name":"database-service","namespace":"defaul...
Selector: app=database,tier=database
Type: ClusterIP
IP: None
Port: mysql 3306/TCP
TargetPort: 3306/TCP
Endpoints: <none>
Port: blazegraph 9999/TCP
TargetPort: 9999/TCP
Endpoints: <none>
Session Affinity: None
Events: <none>
注意服务端点是<none>
. 我不确定这是正确的设置。