首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes Redis集群问题

Kubernetes Redis集群问题
EN

Stack Overflow用户
提问于 2017-03-19 22:09:15
回答 1查看 3.9K关注 0票数 4

我试图在centos上使用kubernetes创建redis集群。我的库伯奈特主人在一个主机上运行,库伯奈特奴隶在两个不同的主机上运行。

etcdctl get /kube-centos/get/config

代码语言:javascript
复制
{ "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }

这是我的复制控制器

代码语言:javascript
复制
apiVersion: v1
kind: ReplicationController
metadata:
  name: redis-master
  labels:
  app: redis
  role: master
  tier: backend
spec:
  replicas: 6
  template:
    metadata:
      labels:
        app: redis
        role: master
        tier: backend
    spec:
      containers:
      - name: master
        image: redis
        command: 
          - "redis-server"
        args:
          - "/redis-master/redis.conf"
        ports:
        - containerPort: 6379
        volumeMounts:
        - mountPath: /redis-master
          name: config
        - mountPath: /redis-master-data 
          name: data
        volumes:
        - name: data
          emptyDir: {}
        - name: config
          configMap:
            name: redis-config
            items:
            - key: redis-config
              path: redis.conf    

创建-f rc.yaml

代码语言:javascript
复制
NAME                           READY     STATUS    RESTARTS   AGE       IP            NODE
redis-master-149tt             1/1       Running   0          8s        172.30.96.4   centos-minion-1
redis-master-14j0k             1/1       Running   0          8s        172.30.79.3   centos-minion-2
redis-master-3wgdt             1/1       Running   0          8s        172.30.96.3   centos-minion-1
redis-master-84jtv             1/1       Running   0          8s        172.30.96.2   centos-minion-1
redis-master-fw3rs             1/1       Running   0          8s        172.30.79.4   centos-minion-2
redis-master-llg9n             1/1       Running   0          8s        172.30.79.2   centos-minion-2

使用Redis-config文件

代码语言:javascript
复制
appendonly yes
cluster-enabled yes
cluster-config-file /redis-master/nodes.conf
cluster-node-timeout 5000
dir /redis-master
port 6379

我使用以下命令创建kubernetes服务。

kubectl公开rc redis-master --name=redis-service --端口=6379-目标端口=6379 --type=NodePort

代码语言:javascript
复制
Name:           redis-service
Namespace:      default
Labels:         app=redis
                role=master
                tier=backend
Selector:       app=redis,role=master,tier=backend
Type:           NodePort
IP:             10.254.229.114
Port:           <unset> 6379/TCP
NodePort:       <unset> 30894/TCP
Endpoints:      172.30.79.2:6379,172.30.79.3:6379,172.30.79.4:6379 + 3     more...
Session Affinity:   None
No events.

现在,我有了所有的吊舱和服务的启动和运行。我用红三脚架来创建红星集群。

-it redis-trib bash ./redis-trib.rb创建--副本1 172.30.79.2:6379 172.30.79.3:6379 172.30.79.4:6379 172.30.96.2:6379 172.30.96.3:6379 172.30.96.4:6379

使用以下消息按预期创建的Redis群集。

代码语言:javascript
复制
[OK] All 16384 slots covered.

现在,我应该能够从网络中的任何主机上访问kubernetes节点IP(192.168.240.116)和nodePort(30894)上的redis集群。当我从一个kubernetes节点执行以下命令时,一切都按预期工作。

-p 30894 -h 192.168.240.116 -c

代码语言:javascript
复制
192.168.240.116:30894> set foo bar
-> Redirected to slot [12182] located at 172.30.79.4:6379
OK
172.30.79.4:6379> 

当我从同一网络中的不同(非kubernetes)节点运行相同的命令时,我会看到已连接的超时错误。

-c -p 30894 -h 192.168.240.116

代码语言:javascript
复制
192.168.240.116:30894> set foo bar
-> Redirected to slot [12182] located at 172.30.79.4:6379
Could not connect to Redis at 172.30.79.4:6379: Connection timed out

当使用NodePort服务类型公开时,是否不可能访问kubernetes集群网络之外的redis集群?

而且,我不能使用LoadBalancer服务类型,因为我没有在云上托管它。

我在这个问题上已经坚持了很长一段时间。有人能建议我应该使用什么方法来访问我的网络外的红星群吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 16:06:16

在这个设置中运行./redis-trib.rb create --replicas 1 172.30.79.2:6379 172.30.79.3:6379 172.30.79.4:6379 172.30.96.2:6379 172.30.96.3:6379 172.30.96.4:6379是没有意义的。

端口6379只能通过您打包的服务访问,但绝不像您尝试的那样直接访问。这就是当你试图使用你的设置时遇到问题的原因。

您可以做的是公开每个POD与它自己的服务,并有一个额外的集群服务,以负载平衡外部请求。如凯尔西·海塔的示例存储库所示。通过这种方式,荚可以通过内部公开的端口进行通信,(外部)客户端可以使用负载平衡集群端口。这也意味着每个POD都需要自己的ReplicaSet (或部署)。凯尔西在YouTube上有一个很长的对话,解释这个设置-- YouTube / Slideshare

另一种选择是使用单一的redis主目录,如其他示例所示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42892904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档