我使用以下yaml文件在kubernetes中部署了ouchbase。
Master:
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:连接被拒绝”。
我发现主图像正在使用this entrypoint script
我运行了该容器映像,由于15s sleep没有足够的时间来启动Couchbase服务器并打开8091端口,因此卷曲似乎失败了。
您最容易做的就是将此睡眠设置为更高的值,但是睡眠通常不是最佳选择。 (实际上,整个图像充满了不良习惯)。
更好的方法是用等待端口8091打开的以下行代替sleep:
while ! nc -z localhost 8091; do
sleep 1
done