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
  • 相关阅读:
    053-005
    053-002
    053-004
    Dynamic Programming: Fibonacci
    Some tips on using HashSet<T> and List<T>
    使用NPOI导出DataTable到Excel
    简简单单写个特效
    vue项目使用tinymce 适用于5.0版本
    封装AJAX
    全屏滑动效果
  • 原文地址:https://www.cnblogs.com/sqbk/p/14976123.html
Copyright © 2011-2022 走看看