我要扩展的安装量最少(正在运行) presto (一个协调器和一个工作器在同一主机上)。我已经创建了一个带有工作节点的容器,当通过docker部署时它可以工作(IE显示在presto CLI中)。
从system.runtime.nodes中选择*;
当我说我的k8集群容器并创建一些Pod时,这些Pod似乎可以与协调器联系,但它们从未出现在CLI中。 Pod的日志显示他们已经找到了协调器,并且协调器日志中没有任何错误消息,因此Im困惑于断开连接的位置。
apiVersion: apps/v1
kind: Deployment
metadata:
name: presto-worker
spec:
type: NodePort
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
答案 0 :(得分:2)
您似乎已将Deployment和Service的各个部分结合在一起;他们是两个不同的对象。您可以将其分解:
---
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模板标签匹配。部署选择器为部署管理的窗格命名。在这两种情况下,它们都指向吊舱,但它们的目的不同。
答案 1 :(得分:1)
以下是适用于https://github.com/helm/charts/tree/master/stable/presto的有效Helm图表(即,k8s资源的模板包)。
从图表上方看,这是k8s中的presto集群的基本设计:
discovery-server.enabled=true
中的<presto-home>/etc/config.properties
或根本找不到协调器。 (也就是,不能通过网络进行外部工作进程)。根据此问题,您需要确保工作进程可以通过DNS名称(如http://my-presto-coordinator:8080
访问presto协调器。
这是我通过运行stable/presto
(在stdout中渲染所有模板)从图表helm template .
获得的结果。您将需要用小写字符串替换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:
{}