- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
服务器版本 | docker软件版本 | Kubernetes(k8s)集群版本 | CPU架构 |
---|---|---|---|
CentOS Linux release 7.4.1708 (Core) | Docker version 20.10.12 | v1.21.9 | x86_64 |
Kubernetes集群架构:k8scloude1作为master节点,k8scloude2,k8scloude3作为worker节点 。
服务器 | 操作系统版本 | CPU架构 | 进程 | 功能描述 |
---|---|---|---|---|
k8scloude1/192.168.110.130 | CentOS Linux release 7.4.1708 (Core) | x86_64 | docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico | k8s master节点 |
k8scloude2/192.168.110.129 | CentOS Linux release 7.4.1708 (Core) | x86_64 | docker,kubelet,kube-proxy,calico | k8s worker节点 |
k8scloude3/192.168.110.128 | CentOS Linux release 7.4.1708 (Core) | x86_64 | docker,kubelet,kube-proxy,calico | k8s worker节点 |
使用ReplicationController的 前提 是已经有一套可以正常运行的Kubernetes集群,关于Kubernetes(k8s)集群的安装部署,可以查看博客《Centos7 安装部署Kubernetes(k8s)集群》 https://www.cnblogs.com/renshengdezheli/p/16686769.html.
ReplicationController 确保在任何时候都有特定数量的 Pod 副本处于运行状态 。 换句话说,ReplicationController 确保一个 Pod 或一组同类的 Pod 总是可用的.
注意 :对于ReplicationController,现在更推荐使用配置 ReplicaSet 的 Deployment 来建立副本管理机制。关于deployment控制器的详细内容,请查看博客《 Kubernetes(k8s)控制器(一):deployment 》.
当 Pod 数量过多时,ReplicationController 会终止多余的 Pod。当 Pod 数量太少时,ReplicationController 将会启动新的 Pod。 与手动创建的 Pod 不同,由 ReplicationController 创建的 Pod 在失败、被删除或被终止时会被自动替换 。 例如,在中断性维护(如内核升级)之后,你的 Pod 会在节点上重新创建。 因此,即使你的应用程序只需要一个 Pod,你也应该使用 ReplicationController 创建 Pod。 ReplicationController 类似于进程管理器,但是 ReplicationController 不是监控单个节点上的单个进程,而是监控跨多个节点的多个 Pod.
ReplicationController 通常缩写为 "rc",并作为 kubectl 命令的快捷方式.
一个 简单的示例 是创建一个 ReplicationController 对象来可靠地无限期地运行 Pod 的一个实例。 更 复杂的用例 是运行一个多副本服务(如 web 服务器)的若干相同副本.
配置ReplicationController,replicas: 3 指定3个副本.
[root@k8scloude1 daemonset]# vim ReplicationController.yaml
[root@k8scloude1 daemonset]# cat ReplicationController.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: rc
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
name: nginx
labels:
app: nginx
spec:
terminationGracePeriodSeconds: 0
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
创建replicationcontroller 。
[root@k8scloude1 daemonset]# kubectl apply -f ReplicationController.yaml
replicationcontroller/rc created
[root@k8scloude1 daemonset]# kubectl get rc
NAME DESIRED CURRENT READY AGE
rc 3 3 3 11s
查看pod,发现有3个pod 。
[root@k8scloude1 daemonset]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rc-ddtpl 1/1 Running 0 28s 10.244.251.225 k8scloude3 <none> <none>
rc-dlzzj 1/1 Running 0 28s 10.244.112.170 k8scloude2 <none> <none>
rc-mw8dw 1/1 Running 0 28s 10.244.112.171 k8scloude2 <none> <none>
通过kubectl scale rc 扩展replicationcontroller副本数,--replicas=5 设置pod副本数为5 。
[root@k8scloude1 daemonset]# kubectl scale rc rc --replicas=5
replicationcontroller/rc scaled
现在有5个pod了 。
[root@k8scloude1 daemonset]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rc-ddtpl 1/1 Running 0 68s 10.244.251.225 k8scloude3 <none> <none>
rc-dlzzj 1/1 Running 0 68s 10.244.112.170 k8scloude2 <none> <none>
rc-gc8n5 1/1 Running 0 3s 10.244.251.226 k8scloude3 <none> <none>
rc-mw8dw 1/1 Running 0 68s 10.244.112.171 k8scloude2 <none> <none>
rc-s2l7z 1/1 Running 0 3s 10.244.112.172 k8scloude2 <none> <none>
[root@k8scloude1 daemonset]# kubectl get rc
NAME DESIRED CURRENT READY AGE
rc 5 5 5 72s
设置pod副本数为1 。
[root@k8scloude1 daemonset]# kubectl scale rc rc --replicas=1
replicationcontroller/rc scaled
[root@k8scloude1 daemonset]# kubectl get rc
NAME DESIRED CURRENT READY AGE
rc 1 1 1 103s
删除replicationcontroller 。
[root@k8scloude1 daemonset]# kubectl delete rc rc
replicationcontroller "rc" deleted
[root@k8scloude1 daemonset]# kubectl get rc
No resources found in daemonset namespace.
最后此篇关于Kubernetes(k8s)控制器(三):ReplicationController的文章就讲到这里了,如果你想了解更多关于Kubernetes(k8s)控制器(三):ReplicationController的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
本文实例讲述了YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用。分享给大家供大家参考,具体如下: 在使用YII2中自带的RBAC时,需要先配置config/web.php:
添加路由 复制代码 代码如下: Route::get('artiles', 'ArticlesController@index'); 创建控制器
目录 一.系统环境 二.前言 三.StatefulSet简介 四.有状态应用和无状态应用区别 五.St
目录 一.系统环境 二.前言 三.Kubernetes 控制器 四.Deployment概览 五.创建
目录 一.系统环境 二.前言 三.DaemonSet 概览 四.创建DaemonSet 4
目录 一.系统环境 二.前言 三.ReplicationController概览 四.ReplicationCont
目录 一.系统环境 二.前言 三.ReplicaSet概览 四.ReplicaSet工作原理 五.Re
使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这
我是一名优秀的程序员,十分优秀!