为什么我无法通过 jelastic 安装清单附加外部 IP?



我有一个非常简单的jelastic安装清单,它安装了一个kubernetes集群:

jpsVersion: 1.3
jpsType: install
application:
id: shopozor-k8s-cluster
name: Shopozor k8s cluster
version: 0.0
settings:
fields:
- name: envName
caption: Env Name
type: string
default: shopozor
- name: topo
type: radio-fieldset
values:
0-dev: '<b>Development:</b> one master (1) and one scalable worker (1+)'
1-prod: '<b>Production:</b> multi master (3) with API balancers (2+) and scalable workers (2+)'
default: 0-dev
- name: k8s-version
type: string
caption: k8s manifest version
default: v1.16.3
onInstall:
- installKubernetes
- attachIpToWorkerNodes
actions:
installKubernetes:
install:
jps: https://github.com/jelastic-jps/kubernetes/blob/${settings.k8s-version}/manifest.jps
envName: ${settings.envName}
displayName: ${settings.envName}
settings:
deploy: cc
topo: ${settings.topo}
dashboard: version2
ingress-controller: Nginx
storage: true
api: true
monitoring: true
version: ${settings.k8s-version}
jaeger: false
attachIpToWorkerNodes:
- forEach(node:nodes.cp):
- jelastic.env.binder.AttachExtIp:
envName: ${settings.envName}
nodeId: ${@node.id}

如果我安装了该清单,那么我的集群就会启动并运行,但工作节点不会连接IPv4。安装该清单后,如果我另外安装以下更新清单,则它可以工作:

jpsVersion: 1.3
jpsType: update
application:
id: attach-ext-ip
name: Attach external IP
version: 0.0
onInstall:
- attachIpToWorkerNodes
actions:
attachIpToWorkerNodes:
- forEach(node:nodes.cp):
- jelastic.env.binder.AttachExtIp:
nodeId: ${@node.id}

我在安装清单中做错了什么?为什么ip没有连接到我的工作节点,而如果我在安装后使用更新清单执行该操作,则会连接到工作节点?

请注意,"公共IP绑定"功能在生产中还不可用。它正在积极开发中,并将在我们的下一个版本中正式发布。在当前的稳定版本中,与之相关的一些功能可能无法正常工作。目前,不建议将其用于生产用途,但您可以尝试仅用于测试目的。至于原始清单中的"attachIpToWorkerNodes"操作,问题是创建的环境的"nodes.cp"没有在调用"forEach"的范围中声明。正确的操作版本是:

attachIpToWorkerNodes:
install:
envName: ${settings.envName}
jps:
type: update
name: Attach IP To Worker Nodes
onInstall: jelastic.env.binder.AttachExtIp [nodes.cp.join(id,)]

如果您还有任何问题,请告诉我们。

最新更新