Docker 在kubernetes部署couchbase时出现连接拒绝错误{未能连接到127.0.0.1端口8091:连接被拒绝}
我使用以下yaml文件在kubernetes中部署couchbase 主机:Docker 在kubernetes部署couchbase时出现连接拒绝错误{未能连接到127.0.0.1端口8091:连接被拒绝},docker,kubernetes,deployment,connection,couchbase,Docker,Kubernetes,Deployment,Connection,Couchbase,我使用以下yaml文件在kubernetes中部署couchbase 主机: apiVersion: v1 kind: ReplicationController metadata: name: couchbase-master-rc spec: replicas: 1 selector: app: master-pod template: metadata: labels: app: maste
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-master-rc
spec:
replicas: 1
selector:
app: master-pod
template:
metadata:
labels:
app: master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase:k8s
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
---
apiVersion: v1
kind: Service
metadata:
name: couchbase-master-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: master-pod
type: LoadBalancer
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-worker-rc
spec:
replicas: 1
selector:
app: couchbase-worker-pod
template:
metadata:
labels:
app: couchbase-worker-pod
spec:
containers:
- name: couchbase-worker
image: arungupta/couchbase:k8s
env:
- name: TYPE
value: "WORKER"
- name: COUCHBASE_MASTER
value: "couchbase-master-service"
- name: AUTO_REBALANCE
value: "false"
ports:
- containerPort: 8091
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: couchbase
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: xxx.com
http:
paths:
- path: /
backend:
serviceName: couchbase-master-service
servicePort: 8091
工人:
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-master-rc
spec:
replicas: 1
selector:
app: master-pod
template:
metadata:
labels:
app: master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase:k8s
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
---
apiVersion: v1
kind: Service
metadata:
name: couchbase-master-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: master-pod
type: LoadBalancer
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-worker-rc
spec:
replicas: 1
selector:
app: couchbase-worker-pod
template:
metadata:
labels:
app: couchbase-worker-pod
spec:
containers:
- name: couchbase-worker
image: arungupta/couchbase:k8s
env:
- name: TYPE
value: "WORKER"
- name: COUCHBASE_MASTER
value: "couchbase-master-service"
- name: AUTO_REBALANCE
value: "false"
ports:
- containerPort: 8091
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: couchbase
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: xxx.com
http:
paths:
- path: /
backend:
serviceName: couchbase-master-service
servicePort: 8091
入口:
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-master-rc
spec:
replicas: 1
selector:
app: master-pod
template:
metadata:
labels:
app: master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase:k8s
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
---
apiVersion: v1
kind: Service
metadata:
name: couchbase-master-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: master-pod
type: LoadBalancer
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-worker-rc
spec:
replicas: 1
selector:
app: couchbase-worker-pod
template:
metadata:
labels:
app: couchbase-worker-pod
spec:
containers:
- name: couchbase-worker
image: arungupta/couchbase:k8s
env:
- name: TYPE
value: "WORKER"
- name: COUCHBASE_MASTER
value: "couchbase-master-service"
- name: AUTO_REBALANCE
value: "false"
ports:
- containerPort: 8091
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: couchbase
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: xxx.com
http:
paths:
- path: /
backend:
serviceName: couchbase-master-service
servicePort: 8091
吊舱开始运行,乍一看似乎没有什么问题。但是当我试图点击HostUrl时,它给了我一个坏的网关。当我查看主吊舱的日志时,它显示连接在127.0.0.1:8091被拒绝。我试图执行pod并手动应用entrypoint.sh中的curl语句,但它也给了我错误“无法连接到127.0.0.1端口8091:连接被拒绝”。
我发现主映像正在使用 我运行了这个容器映像,看起来curl失败了,因为couchbase服务器没有足够的时间启动和打开8091端口 你能做的最简单的事情就是将睡眠设置为更高的值,但睡眠通常不是最好的选择。(事实上,这张图片充满了糟糕的做法) 更好的方法是使用以下等待端口8091打开的线路替换睡眠:
while ! nc -z localhost 8091; do
sleep 1
done
我建议不要使用arungupta/couchbase:k8s,这是一个可能已经过时的非官方图像。另外,我建议对kubernetes部署使用Couchbase操作符:实际上我没有对集群的完全访问权。因此,我不打算应用集群角色和集群角色绑定。所以我不能和接线员一起工作。没有操作员,我只是在网上找到了这个yaml文件作为一个例子。实际上,我是新来的。所以我有一个疑问。我认为entrypoint.sh在图像中。那么我怎样才能更新其中的内容呢?看起来这些都是你需要的文件。你只需要构建它并推送到docker repo。