Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何将动态IP设置为属性文件?_Kubernetes_Kubernetes Pod - Fatal编程技术网

Kubernetes 如何将动态IP设置为属性文件?

Kubernetes 如何将动态IP设置为属性文件?,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我部署了两个吊舱,需要与另一个吊舱(比如说A吊舱)通话。 Pod A需要部署的Pod服务的Ip地址。所以我需要在Pod A所需的配置属性文件中设置这些Ip地址。 由于Ip地址是动态的,也就是说,如果pod崩溃,它会被更改。所以需要动态设置它 目前我部署了2个吊舱,并且 kubectl get ep 并在配置属性文件中设置这些Ip地址,构建Dockerfile并推送它,然后使用该映像进行部署 这是我的解聚和svc文件,其中映像djtijare/a2ipricing指的是配置文件 apiV

我部署了两个吊舱,需要与另一个吊舱(比如说A吊舱)通话。 Pod A需要部署的Pod服务的Ip地址。所以我需要在Pod A所需的配置属性文件中设置这些Ip地址。 由于Ip地址是动态的,也就是说,如果pod崩溃,它会被更改。所以需要动态设置它

目前我部署了2个吊舱,并且

kubectl get ep
并在配置属性文件中设置这些Ip地址,构建Dockerfile并推送它,然后使用该映像进行部署

这是我的解聚和svc文件,其中映像djtijare/a2ipricing指的是配置文件

    apiVersion: v1
   kind: Service
metadata:
  name: spring-boot-demo-pricing
spec:
  ports:
  - name: spring-boot-pricing
    port: 8084
    targetPort: 8084
  selector:
    app: spring-boot-demo-pricing

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: spring-boot-demo-pricing
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: spring-boot-demo-pricing
    spec:
      containers:
      - name: spring-boot-demo-pricing
        image: djtijare/a2ipricing:v1
        imagePullPolicy: IfNotPresent
       # envFrom:
        #- configMapRef:
        #    name: spring-boot-demo-config-map
        resources:
          requests:
            cpu: 100m
            memory: 1Gi
        ports:
        - containerPort: 8084
      nodeSelector:
         disktype: ssd

因此,如何在配置文件中动态设置这两个吊舱的IP,并构建和推送docker映像。

我认为您应该考虑使用

有时,您不需要或不想要负载平衡和单一服务IP。在这种情况下,您可以通过显式地为集群IP指定
“None”
.spec.clusterIP
)来创建所谓的“headless”服务

您可以使用无头服务与其他服务发现机制进行接口,而不必绑定到Kubernetes的实现。例如,您可以实现一个自定义的[Operator](操作符),它可以基于此API构建

对于此类
服务
,不分配群集IP,kube代理不处理这些服务,平台也不为其执行负载平衡或代理。DNS的自动配置方式取决于服务是否定义了选择器

例如,如果您将服务设置为
spec.clustrip=None
,您可以
nslookup-type=spring boot演示定价
,它将显示连接到此
服务的
pod
的IP

/ # nslookup -type=A spring-boot-demo-pricing
Server:         10.11.240.10
Address:        10.11.240.10:53

Name:   spring-boot-demo-pricing.default.svc.cluster.local
Address: 10.8.2.20
Name:   spring-boot-demo-pricing.default.svc.cluster.local
Address: 10.8.1.12
Name:   spring-boot-demo-pricing.default.svc.cluster.local
Address: 10.8.1.13
下面是我使用的
yaml

apiVersion: v1
kind: Service
metadata:
  name: spring-boot-demo-pricing
  labels:
    app: spring-boot-demo-pricing
spec:
  ports:
  - name: spring-boot-pricing
    port: 8084
    targetPort: 8084
  clusterIP: None
  selector:
    app: spring-boot-demo-pricing

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-boot-demo-pricing
  labels:
    app: spring-boot-demo-pricing
spec:
  replicas: 3
  selector:
    matchLabels:
       app: spring-boot-demo-pricing
  template:
    metadata:
      labels:
        app: spring-boot-demo-pricing
    spec:
      containers:
      - name: spring-boot-demo-pricing
        image: djtijare/a2ipricing:v1
        imagePullPolicy: IfNotPresent
       # envFrom:
        #- configMapRef:
        #    name: spring-boot-demo-config-map
        resources:
          requests:
            cpu: 100m
            memory: 1Gi
        ports:
        - containerPort: 8084

能否使用服务的DNS名称
spring boot演示定价
?如何检查此问题?curl spring boot演示定价不起作用