Docker 普雷斯托-将工人从码头工人转移到库伯内特斯
我有一个要扩展的最小(工作)presto安装(同一主机上有一个协调器和一个工作器)。我已经创建了一个带有工作节点的容器,当通过docker部署时,它可以工作(即显示在presto CLI中) 从system.runtime.nodes中选择* 当我将容器移动到我的k8集群并创建几个pod时,这些pod似乎可以联系协调器,但它们从未出现在CLI中。POD的日志显示他们已经发现了协调器,协调器日志中没有任何错误msgs,因此我不知道断开连接的位置 部署.yamlDocker 普雷斯托-将工人从码头工人转移到库伯内特斯,docker,kubernetes,presto,Docker,Kubernetes,Presto,我有一个要扩展的最小(工作)presto安装(同一主机上有一个协调器和一个工作器)。我已经创建了一个带有工作节点的容器,当通过docker部署时,它可以工作(即显示在presto CLI中) 从system.runtime.nodes中选择* 当我将容器移动到我的k8集群并创建几个pod时,这些pod似乎可以联系协调器,但它们从未出现在CLI中。POD的日志显示他们已经发现了协调器,协调器日志中没有任何错误msgs,因此我不知道断开连接的位置 部署.yaml 看起来您已经将部署和服务的各个部分组
看起来您已经将部署和服务的各个部分组合在一起了;它们是两个不同的物体。您可以将其分解:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: presto-worker
spec:
selector:
matchLabels:
app: presto-worker
replicas: 2
template:
metadata:
labels:
app: presto-worker
spec:
containers:
- name: presto-image
image: docker.io/mystuff/presto-image:latest
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: presto-worker
spec:
type: NodePort
selector:
matchLabels:
app: presto-worker
ports:
- name: http
port: 8080
服务选择器指向特定的POD;它需要匹配部署规范的pod模板标签。部署选择器命名部署管理的POD。在这两种情况下,它们都指向POD,但它们的用途不同。看起来您已经将部署和服务的一部分结合起来了;它们是两个不同的物体。您可以将其分解:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: presto-worker
spec:
selector:
matchLabels:
app: presto-worker
replicas: 2
template:
metadata:
labels:
app: presto-worker
spec:
containers:
- name: presto-image
image: docker.io/mystuff/presto-image:latest
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: presto-worker
spec:
type: NodePort
selector:
matchLabels:
app: presto-worker
ports:
- name: http
port: 8080
服务选择器指向特定的POD;它需要匹配部署规范的pod模板标签。部署选择器命名部署管理的POD。在这两种情况下,它们都指向POD,但它们的用途不同。这里是presto的工作舵图(即k8s资源的模板包): 上图显示了k8s中presto集群的基本设计:
/etc/config.properties
中的discovery server.enabled=true
,或者根本无法发现您的coordinator。(也就是说,不能通过网络拥有外部工作进程)http://my-presto-coordinator:8080
这是我从图表
stable/presto
中通过运行helm-template得到的。
(在stdout中呈现所有模板)。您需要使用小写字符串替换RELEASE-NAME
:
---
# Source: charts/presto/templates/deployment-worker.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: RELEASE-NAME-presto-worker
labels:
app: presto
chart: presto-0.1
release: RELEASE-NAME
heritage: Tiller
component: worker
spec:
replicas: 2
selector:
matchLabels:
app: presto
release: RELEASE-NAME
component: worker
template:
metadata:
labels:
app: presto
release: RELEASE-NAME
component: worker
spec:
volumes:
- name: config-volume
configMap:
name: RELEASE-NAME-presto-worker
containers:
- name: presto-worker
image: "bivas/presto:0.196"
imagePullPolicy: IfNotPresent
command: ["/bin/bash"]
args:
- /etc/presto/docker-presto.sh
volumeMounts:
- mountPath: /etc/presto
name: config-volume
livenessProbe:
exec:
command:
- /bin/bash
- /etc/presto/health_check.sh
initialDelaySeconds: 10
periodSeconds: 25
readinessProbe:
exec:
command:
- /bin/bash
- /etc/presto/health_check.sh
initialDelaySeconds: 5
periodSeconds: 10
resources:
{}
以下是presto的工作舵图(即k8s资源的模板包): 上图显示了k8s中presto集群的基本设计:
/etc/config.properties
中的discovery server.enabled=true
,或者根本无法发现您的coordinator。(也就是说,不能通过网络拥有外部工作进程)http://my-presto-coordinator:8080
这是我从图表
stable/presto
中通过运行helm-template得到的。
(在stdout中呈现所有模板)。您需要使用小写字符串替换RELEASE-NAME
:
---
# Source: charts/presto/templates/deployment-worker.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: RELEASE-NAME-presto-worker
labels:
app: presto
chart: presto-0.1
release: RELEASE-NAME
heritage: Tiller
component: worker
spec:
replicas: 2
selector:
matchLabels:
app: presto
release: RELEASE-NAME
component: worker
template:
metadata:
labels:
app: presto
release: RELEASE-NAME
component: worker
spec:
volumes:
- name: config-volume
configMap:
name: RELEASE-NAME-presto-worker
containers:
- name: presto-worker
image: "bivas/presto:0.196"
imagePullPolicy: IfNotPresent
command: ["/bin/bash"]
args:
- /etc/presto/docker-presto.sh
volumeMounts:
- mountPath: /etc/presto
name: config-volume
livenessProbe:
exec:
command:
- /bin/bash
- /etc/presto/health_check.sh
initialDelaySeconds: 10
periodSeconds: 25
readinessProbe:
exec:
command:
- /bin/bash
- /etc/presto/health_check.sh
initialDelaySeconds: 5
periodSeconds: 10
resources:
{}
您的配置不清楚:1。您是否创建了服务?如果是-您能否提供yaml文件以查看您的服务配置?2.你能提供你的日志吗。3.在阅读了您的问题之后,我了解到您的协调器主机位于您创建工作节点的集群之外,并且您还没有创建服务/入口来向协调器公开工作节点。这就是为什么它在集群中不可见的原因。我对服务的理解是,它一次公开一个worker。这是不对的吗?类似的负载均衡器。最好共享更多日志,或者在
log.properties
中使用com.facebook.presto=DEBUG
来获取更多反馈,以判断哪里出了问题(到目前为止,我不知道是您的presto配置还是presto集群设置),您是否从该repo中看到了presto集群的k8s tempaltes?您的配置不清楚:1。您是否创建了服务?如果是-您能否提供yaml文件以查看您的服务配置?2.你能提供你的日志吗。3.在阅读了您的问题之后,我了解到您的协调器主机位于您创建工作节点的集群之外,并且您还没有创建服务/入口来向协调器公开工作节点。这就是为什么它在集群中不可见的原因。我对服务的理解是,它一次公开一个worker。这是不对的吗?类似的负载均衡器。最好共享更多日志,或者在log.properties
中使用com.facebook.presto=DEBUG
来获取更多反馈,以判断哪里出了问题(到目前为止,我不知道是您的presto配置还是presto集群设置),您是否从该repo中看到了presto集群的k8s tempaltes?这是否允许同时访问所有吊舱?我对服务的理解(在这种情况下)是it提供的