zoukankan      html  css  js  c++  java
  • k8s-rc

    Replication Controller(RC)

    Replication Controller是Kubernetes系统中的核心概念,用于定义Pod副本的数量。

    在Master内,Controller Manager进程通过RC的定义来完成Pod的创建、监控、启停等操作。

    根据Replication Controller的定义,Kubernetes能够确保在任意时刻都能运行用于指定的Pod“副本”(Replica)数量。

    如果有过多的Pod副本在运行,系统就会停掉一些Pod;
    如果运行的Pod副本数量太少,系统就会再启动一些Pod,
    总之,通过RC的定义,Kubernetes总是保证集群中运行着用户期望的副本数量。

    同时,Kubernetes会对全部运行的Pod进行监控和管理,如果有需要(例如某个Pod停止运行),就会将Pod重启命令提交给Node上的某个程序来完成(如Kubelet或Docker)。

    通过对Replication Controller的使用,Kubernetes实现了应用集群的高可用性,并大大减少了系统管理员在传统IT环境中需要完成的许多手工运维工作(如主机监控脚本、应用监控脚本、故障恢复脚本等)。


    对Replication Controller的定义使用Yaml或Json格式的配置文件来完成。

    以redis-slave为例,在配置文件中通过spec.template定义Pod的属性(这部分定义与Pod的定义是一致的),设置spec.replicas=2来定义Pod副本的数量。

    apiVersion: v1
    kind: ReplicationController
    metadata:
    name: redis-slave
    labels: redis-slave
    name: redis-slave
    spec:
    replicas: 2
    selector:
    name: redis-slave
    template:
    metadata:
    labels:
    name: redis-slave
    spec:
    container:
    - name: slave
    image: kubeguide/guestbook-redis-slave
    env:
    - name: GET_HOSTS_FROM
    value: env
    ports:
    - containerPort: 6379

    通常,Kubernetes集群中不止一个Node,假设一个集群有3个Node,根据RC的定义,系统将可能在其中的两个Node上创建Pod。

  • 相关阅读:
    Oracle:Using the DBMS_STATSpackage
    Oracle partitioning is not always a good idea.
    Oracle: Benefits and consequences of the NOLOGGING option
    Oracle :Insert ways.
    Oracle:临时表的统计信息
    C#中使用DTS来导入数据及相关问题
    [收藏]CSS网页制作时实现自动换行的小技巧
    新加了牛人的Blog链接
    在.Net下使用Access 的日期类型 及与js的日历控件交互
    在程序中生成PDF
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/k8s-rc.html
Copyright © 2011-2022 走看看