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。

  • 相关阅读:
    第五周作业
    2019春第四周作业编程总结
    2019春第四周作业
    2019春第二周作业编程总结
    2019春第一周作业编程总结
    自我认识
    对我影响最大的三位老师
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/k8s-rc.html
Copyright © 2011-2022 走看看