zoukankan      html  css  js  c++  java
  • k8s-redis集群属性简单解释

    练习的docker镜像都是从 kubeguide/xxx 权威指南中给的练习地址哈

    redis-RC

    [root@salt php-redis]# cat redis-master-controller.yaml 
    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: redis-master
      labels:
        name: redis-master
    spec:
      replicas: 1
      selector:
        name: redis-master
      template:
        metadata:
          labels:
            name: redis-master
        spec:
          containers:
          - name: master
            image: kubeguide/redis-master
            ports:
            - containerPort: 6379

    kind 值为 ReplicationController 表示是创建的是一个RC
    spec.selector是RC的pod选择器,监控和管理拥有这些标签(Lable)的pod实例,确保当前集群上始终有且仅有replicas个pod实例在运行

    replicas=1 只运行1个(名为redis-master的)pod实例

    当集群中运行的pod数量小于replicas时,RC会根据spec.template段定义的pod模板来生成一个新的pod实例,labels属性指定了该pod的标签,

    这里的labels必须匹配RC的spec.selector

    redis-service

    [root@salt php-redis]# cat redis-master-service.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      name: redis-master
      labels:
        name: redis-master
    spec:
      ports:
      - port: 6379
        targetPort: 6379
      selector:
        name: redis-master

    metadata.name是Service的服务名(ServiceName)

    spec.selector确定了选择哪些pod,这里定义为选择name=redis-master标签的pod

    port属性定义了service的虚拟端口号,targetPort属性指定后端pod内容器应用的端口号

    redis-slaveRC

    [root@salt php-redis]# cat redis-slave-controller.yaml 
    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: redis-slave
      labels:
        name: redis-slave
    spec:
      replicas: 2
      selector:
        name: redis-slave
      template:
        metadata:
          labels:
            name: redis-slave
        spec:
          containers:
          - name: slave
            image: kubeguide/guestbook-redis-slave
            env:
            - name: GET_HOSTS_FROM
              value: env
            ports:
            - containerPort: 6379

    镜像中的启动脚本

    root@redis-slave-4d2zw:/data# cat /run.sh |grep -v "^#"|grep -v "^$"
    if [[ ${GET_HOSTS_FROM:-dns} == "env" ]]; then
      redis-server --slaveof ${REDIS_MASTER_SERVICE_HOST} 6379
    else
      redis-server --slaveof redis-master 6379
    fi

    redis-slave_service

    [root@salt php-redis]# cat redis-slave-service.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      name: redis-slave
      labels:
        name: redis-slave
    spec:
      ports:
      - port: 6379
      selector:
        name: redis-slave

    kubectl get 

    [root@salt php-redis]# kubectl get pod 
    NAME                 READY   STATUS    RESTARTS   AGE
    redis-master-d5sqn   1/1     Running   0          93m
    redis-slave-4d2zw    1/1     Running   0          11m
    redis-slave-tbrzt    1/1     Running   0          11m
    [root@salt php-redis]# kubectl get svc
    NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
    kubernetes     ClusterIP   10.68.0.1      <none>        443/TCP    17h
    redis-master   ClusterIP   10.68.153.64   <none>        6379/TCP   26m
    redis-slave    ClusterIP   10.68.228.91   <none>        6379/TCP   5m47s
  • 相关阅读:
    python 执行sql得到字典格式数据
    python爬虫 url链接编码成gbk2312格式
    windows环境下elasticsearch安装教程(单节点)
    python SQLServer 存储图片
    爬虫的本质是和分布式爬虫的关系
    requests form data 请求 爬虫
    mysql 删除 binlog 日志文件
    查看mysql数据表的大小
    xshell 连接报错 Disconnected from remote host
    centos 7.3 安装 mysqldb 报错 EnvironmentError: mysql_config not found ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  • 原文地址:https://www.cnblogs.com/sqbk/p/14976123.html
Copyright © 2011-2022 走看看