首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StatefulSet如何在Kubernetes中为容器指定主机名

StatefulSet如何在Kubernetes中为容器指定主机名
EN

Stack Overflow用户
提问于 2017-11-09 02:17:57
回答 1查看 1.9K关注 0票数 0

在Kubernetes中,StatefulSet规范是如何为每个容器指定主机名的,以防我们设置hostNetwork: true?我有以下规格(类似):

代码语言:javascript
复制
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的主机名。

  • Kubectl版本: 1.7.3
  • 码头版本: 1.12.6

此外,唯一运行的服务是Kubernetes服务。我不是自己创造abc服务的。

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 10.96.0.1 <none> 443/TCP 1d

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-09 04:04:21

它应该每个节点只创建一个荚,我在下面的1.8集群中测试了它,它创建的每个节点都有正确的荚主机名(与节点名相同)。它不会创建任何我们需要创建的服务。

您的集群是1.7.3版本,这可能是错误,这就是为什么它不正确地创建主机名的原因。

代码语言:javascript
复制
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

我只有两个节点,它只创建了两个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47192841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档