GET_HOSTS_FROM变量的值是什么?

我正在关注Kubernetes教程:https://kubernetes.io/docs/tutorials/stateless-application/guestbook/#creating-the-redis-master-service

但是我不明白这句话。在前端部署中,有GET_HOSTS_FROM变量。其值为“ dns”。是进一步评估还是保留为“ dns”?

这是整个对应的Yaml:

#application/guestbook/frontend-deployment.yaml 

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: frontend
  labels:
    app: guestbook
spec:
  selector:
    matchLabels:
      app: guestbook
      tier: frontend
  replicas: 3
  template:
    metadata:
      labels:
        app: guestbook
        tier: frontend
    spec:
      containers:
      - name: php-redis
        image: gcr.io/google-samples/gb-frontend:v4
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        env:
        - name: GET_HOSTS_FROM
          value: dns
          # Using `GET_HOSTS_FROM=dns` requires your cluster to
          # provide a dns service. As of Kubernetes 1.3,DNS is a built-in
          # service launched automatically. However,if the cluster you are using
          # does not have a built-in DNS service,you can instead
          # access an environment variable to find the master
          # service's host. To do so,comment out the 'value: dns' line above,and
          # uncomment the line below:
          # value: env
        ports:
        - containerPort: 80
hualuofengfei 回答:GET_HOSTS_FROM变量的值是什么?

GET_HOSTS_FROM的值不再进行评估-仍为“ dns”。

查看应用程序的源代码hereGET_HOSTS_FROM用于确定Redis主服务器和从服务器的主机是否来自环境,或者默认情况下是该服务器的Kubernetes服务名称。 primaryslave

  $host = 'redis-master';
  if (getenv('GET_HOSTS_FROM') == 'env') {
    $host = getenv('REDIS_MASTER_SERVICE_HOST');
  }

当主机名是Kubernetes服务名时,将使用集群的DNS来解析它们。

值得一提的是Pod如何在相同或不同命名空间中引用服务(摘录是从上面给出的文档的链接):

  

...如果在Kubernetes命名空间中有一个名为“ my-service”的服务   “ my-ns”,控制平面和DNS服务共同创建   DNS记录“ my-service.my-ns”。 “ my-ns”命名空间中的窗格   只需对我的服务进行名称查找就应该能够找到它   (“ my-service.my-ns”也可以)。

本文链接:https://www.f2er.com/3150796.html

大家都在问