3.k8s资源控制器rs Deployment Job
k8s资源控制器
#控制器类型
ReplicaSet #rs,确保pod副本数,rs已替代rc
Deployment #管理rs,升级、回滚、扩容pod
DaemonSet #在每个节点运行一个Pod
StateFulSet #解决有状态服务,Pod重新调度后PodName和HostName不变
Job/CronJob #批处理任务/定时任务
HPA #按CPU使用率或自定义metrics扩展Pod数量 Horizontal Pod Autoscaling
#rs实例
#rs-demo.yaml
apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
name: rs-demo
spec:
replicas: 2 #副本数量
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-rs
image: alivv/nginx:node
ports:
- containerPort: 80
#创建
kubectl create -f rs-demo.yaml
#查看rs
kubectl get rs
kubectl describe rs rs-demo
#查看pod
kubectl get pod
kubectl get pod --show-labels
#删除所有pod
kubectl delete pod --all
#再次查看,发现pod存在,保持在副本数量
kubectl get pod
#删除
kubectl delete -f rs-demo.yaml
#Deployment实例
Deployment -> 创建ReplicaSet(rs) -> 创建Pod
#nginx-deployment.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deploy
labels:
app: nginx-demo
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: alivv/nginx:node
ports:
- containerPort: 80
#创建( --record参数记录命令,方便后续查看变化)
kubectl apply -f nginx-deployment.yaml --record
#查看
kubectl get deployments
kubectl get rs
kubectl get pod --show-labels
#扩容
kubectl scale deployment nginx-deploy --replicas 5
#Deployment自动扩展
#kubectl autoscale deployment nginx-deployment --min=3 --max=9 --cpu-percent=80
#更新镜像
kubectl set image deployment/nginx-deploy nginx=nginx:alpine
#回滚到前一个版本
kubectl rollout undo deployment/nginx-deploy
#查看回滚状态(回滚完成返回值为0 echo $?)
kubectl rollout status deployment/nginx-deploy
#查看历史rs
kubectl get rs
#查看回滚历史
kubectl rollout history deployment nginx-deploy
#回滚到指定版本
#kubectl rollout undo deployment nginx-deploy --to-revision=2
#生产建议设置Deployment的.spec.revisionHistoryLimit限制保留revision历史记录数量
Deployment更多参数 https://www.kubernetes.org.cn/deployment
#DaemonSet实例
#nginx-ds.yaml
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: deamonset-example
labels:
app: daemonset
spec:
selector:
matchLabels:
name: deamonset-example
template:
metadata:
labels:
name: deamonset-example
spec:
containers:
- name: nginx
image: alivv/nginx:node
#部署
kubectl create -f nginx-ds.yaml
#查看启动node
kubectl get pods -o wide
#删除
kubectl delete -f nginx-ds.yaml
#Job实例
可选参数
RestartPolicy 仅支持Never或OnFailure
spec.completions 需要成功运行Pod个数,默认1
spec.parallelism 运行Pod个数,默认1
spec.activeDeadlineSeconds 失败Pod重试最大时间
#job-demo.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: job-demo
spec:
template:
metadata:
name: job-demo
spec:
restartPolicy: Never
containers:
- name: job-test
image: busybox
command: ["bin/sh", "-c", "for n in $(seq 1 9);do echo $n;done"]
#创建
kubectl create -f job-demo.yaml
#查看
kubectl get job
kubectl get pod
kubectl log $(kubectl get pod |awk '/job-demo/{print $1}')
#删除
kubectl delete -f job-demo.yaml
#cronjob实例
cronjob -> 创建job -> 创建Pod
schedule: "* * * * *" 分 时 日 月 周,相当于Linux定时任务
.spec.startingDeadlineSeconds 启动Job期限,默认没限制
.spec.successfulJobsHistoryLimit 保留完成job数,默认3
.spec.failedJobsHistoryLimit 保留失败job数,默认1
.spec.concurrencyPolicy 并发策略,默认Allow,Forbid禁止,Replace关闭旧的运行新Job
#cronjob-demo.yaml
kind: CronJob
apiVersion: batch/v1beta1
metadata:
name: cronjob-demo
spec:
schedule: "*/1 * * * *" #每分钟执行
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: cronjob-demo
image: busybox
args:
- /bin/sh
- -c
- echo -n $(hostname) 'cronjob demo ';date +%T
#创建
kubectl create -f cronjob-demo.yaml
#查看
kubectl get cronjob
kubectl get job
kubectl get pod
kubectl get pod |awk '/cronjob-demo/{print "kubectl logs "$1}' |bash
#删除
kubectl delete -f cronjob-demo.yaml
Blog地址 https://www.cnblogs.com/elvi/p/11755712.html
本文git地址 https://gitee.com/almi/k8s/tree/master/notes
3.k8s资源控制器rs Deployment Job的更多相关文章
- Kubernetes K8S之资源控制器RC、RS、Deployment详解
Kubernetes的资源控制器ReplicationController(RC).ReplicaSet(RS).Deployment(Deploy)详解与示例 主机配置规划 服务器名称(hostna ...
- Kubernetes K8S之资源控制器StatefulSets详解
Kubernetes的资源控制器StatefulSet详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2 ...
- Kubernetes K8S之资源控制器Daemonset详解
Kubernetes的资源控制器Daemonset详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/ ...
- Kubernetes K8S之资源控制器Job和CronJob详解
Kubernetes的资源控制器Job和CronJob详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2 ...
- k8s学习-资源控制器
4.3.资源控制器 4.3.1.概念 Kubernetes中内建了很多种controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为. 4.3.2.分类 Replication ...
- Kubernetes的资源控制器和Service(四)
一.定义和分类 1,定义 k8s 中内建了很多控制器(controller ),这些相当于一个状态机,用来控制 Pod 的具体状态和行为. 2,类型 ReplicationController.Rep ...
- Kubernetes-5.Pod资源控制器(1)
docker version:20.10.2 kubernetes version:1.20.1 本文概述Kubernetes Pod资源控制器的ReplicaSet.Deployment.Daemo ...
- K8S ingress控制器
文章转载自: K8S ingress控制器 (一)https://blog.51cto.com/u_13760351/2728917 K8S ingress控制器 (二)https://blog.51 ...
- Prometheus 监控K8S 资源状态对象
Prometheus 监控K8S 资源状态对象 官方文档:https://github.com/kubernetes/kube-state-metrics kube-state-metrics是一个简 ...
随机推荐
- Linux 硬盘挂载(服务器重启自动挂载)
1.先查看目前机器上有几块硬盘,及已挂载磁盘: fdisk -l 能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区.(下面以/dev/vdb磁盘进行分区.挂载为例,挂载点设置为/data) ...
- Nginx进行UDP的负载均衡
准备工作: 服务器1:192.168.33.102 搭建nginx服务,作为反向代理的中转站 服务器2:192.168.33.103 nginx要反向代理的服务器 一.在服务器1上搭建n ...
- Linux20期学习笔记 Day2
Linux系统进程状态及部分基础命令
- 监控mysql的存储引擎
监控mysql 显示进程状态变量 mysql> show variables like '%thread%'; +----------------------------+----------- ...
- (转) windows 下ORA-12514:TNS 监听问题
在使用Orcale数据库的时候不知道各位是否遇到过如图的监听问题(或者显示类似的问题),以下方法就是来解决这样的问题的. 首先右击计算机,选择管理.选择左侧栏的服务与应用程序,右侧栏选服务. ...
- a标签前端下载火狐兼容和笔记
1.a标签实现前端下载的谷歌兼容 我们都知道,文件下载的一种实现方案就是后端返回文件流,然后前端进行生成a标签并触发点击来下载.但是在火狐浏览器的时候,需要注意一些兼容性问题.原因是火狐的同源策略.官 ...
- ui自动化之selenium操作(三)xpath定位
xpath 的定位方法,非常强大.使用这种方法几乎可以定位到页面上的任意元素. 1. 什么是xpath? xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们 ...
- dubbo 2.8.4(dubbox)的jar包制作【添加到maven本地仓库】
1. 下载 网址:https://github.com/hongmoshui/dubbox 2. 解压zip文件 3. 用maven编译文件 如果没有配置全局maven,就直接使用cmd命令行[进 ...
- ubuntu 设置apt-get 代理
1 添加apt-get 代理配置文件 sudo vi /etc/apt/apt.conf.d/proxy.conf 2 添加内容 Acquire::http::Proxy "http://w ...
- 如何提升scrapy爬取数据的效率
在配置文件中修改相关参数: 增加并发 默认的scrapy开启的并发线程为32个,可以适当的进行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. ...