在Kubernetes中,StatefulSet规范是如何为每个容器指定主机名的,以防我们设置hostNetwork: true?我有以下规格(类似):
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: abc
spec:
serviceName: abc
replicas: 2
template:
metadata:
labels:
app: abc
spec:
hostNetwork: true
#hostame: test
terminationGracePeriodSeconds: 10
containers:
- name: abc
image: abc.xyz.com:9001/abc:01.00.00.00
ports:
- name: api-port
containerPort: 9000
hostPort: 9000
readinessProbe:
httpGet:
path: /api
port: api-port
scheme: HTTPS现在,在运行kubectl create命令之后,我看到第一个容器在出现时会选择主机的主机名,因为我们已经指定了hostNetwork: true,但是第二个容器在出现时具有类似于abc-0.abc.default.svc.cluster.local的主机名。
此外,唯一运行的服务是Kubernetes服务。我不是自己创造abc服务的。
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 10.96.0.1 <none> 443/TCP 1d
发布于 2017-11-09 04:04:21
它应该每个节点只创建一个荚,我在下面的1.8集群中测试了它,它创建的每个节点都有正确的荚主机名(与节点名相同)。它不会创建任何我们需要创建的服务。
您的集群是1.7.3版本,这可能是错误,这就是为什么它不正确地创建主机名的原因。
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: abc
spec:
serviceName: abc
replicas: 3
template:
metadata:
labels:
app: abc
spec:
hostNetwork: true
#hostame: test
terminationGracePeriodSeconds: 10
containers:
- name: sfgtools
image: sfgroups/alphine_nettools
ports:
- name: api-port
containerPort: 80
hostPort: 80我只有两个节点,它只创建了两个

https://stackoverflow.com/questions/47192841
复制相似问题