连接Kubernetes Pod中托管的Elixir应用程序

时间:2019-01-07 18:50:38

标签: kubernetes elixir

我得到了以下Kubernetes pod和无头服务YAML配置文件:

apiVersion: v1
kind: Service
metadata:
  name: elixir
spec:
  clusterIP: None
  selector:
    app: elixir
  ports:
  - port: 4369

apiVersion: v1
kind: Pod
metadata:
  name: e1
  labels:
    app: elixir
spec:
  hostname: e1
  subdomain: elixir
  dnsPolicy: ClusterFirst
  restartPolicy: Never
  containers:
  - name: elixir
    image: bitwalker/alpine-elixir
    env:
    - name: MYDNSDOMAIN
      value: elixir.default.svc.cluster.local
    - name: MYPODNAME
      valueFrom:
        fieldRef:
          fieldPath: metadata.name
    - name: MYPODIP
      valueFrom:
        fieldRef:
          fieldPath: status.podIP
    command: [ "sh" ]
    args: [  "/programa/run_elixir.sh", "$(MYPODNAME).$(MYDNSDOMAIN)"]
    ports:
    - containerPort: 4369
    volumeMounts:
    - name: programa-volume
      mountPath: /programa
  volumes:
  - name: programa-volume
    configMap:
      name: cm-elixir
      items:
      - key: run_elixir.sh
        path: run_elixir.sh
        mode: 0777
      - key: prueba.exs
        path: prueba.exs
        mode: 0777 

可以在我的集群的Pod中启动一个简单的Elixir程序。run_elixir.sh是一个Shell脚本,可将程序设置启动为节点名Pod名称和主机DNS域。 服务和pod均成功启动(如果输入kubectl logs e1,则可以看到程序输出)。

但是,我无法从集群外部连接到灵丹妙药节点(实际上,我什至不能从内部进行连接):为此,我使用Node.connect(:"e@e1.elixir.default.svc.cluster.local")。应该行吗?我是否可以做其他事情,例如将群集DNS服务器添加到本地计算机DNS服务器列表中?

任何帮助将不胜感激。

0 个答案:

没有答案