Kubernetes之deployment

2023-11-12

1用Deployment运行应用

Kubernetes通过各种Controller来管理Pod的生命周期。为了满足不同业务场景,Kubernetes开发了Deployment、ReplicaSet、StatefuleSet、Job等多种Controller。
首先使用最常用的Deployment。

[root@master ~] kubectl   run   nginx-deploy   --image=nginx   --replicas=2

查看

[root@master ~] kubectl get deployments.apps 

在这里插入图片描述

查看更加详细的信息:

[root@master ~]# kubectl    get  deployments.apps

查看副本集:

[root@master nginx]# kubectl get replicasets.apps nginx-deploy-dc9ff4b8c 
NAME                     DESIRED   CURRENT   READY   AGE
nginx-deploy-dc9ff4b8c   2         2         2       29m

查看详细的副本集信息:

[root@master ~]# kubectl   describe replicasets.apps nginx-deploy-dc9ff4b8c

Controlled By指明此Pod是由ReplicaSet nginx-deployment-6c94df7599创建。Events纪录了Pod的启动过程。如果操作失败(比如image不存在),也能在这里查看到原因。

总结一下这个过程:
1)用户通过kubectl创建Deployment。
2)Deployment创建ReplicaSet.
3)ReplicaSet创建Pod。

对象的命名方式是:子对象的名称=父对象的名字+随机字符串或数字。

查看pod

[root@master nginx]# kubectl get pod

在这里插入图片描述

2、k8s创建资源的两种方式

命令vs配置文件

Kubernetes支持两种方式创建资源:
①用kubectl命令直接创建,比如:kubectl run nginx-deployment --image=nginx --replicas=2在命令行中通过参数指定资源的属性。
②通过配置文件和kubectl apply创建,要完成前面的工作,然后执行命令,比如:kubectl apply -f nginx.yml。
命令与配置文件这两种方式的比较:

·基于命令的方式:
①简单直接快捷,上手快。
②适合临时测试或实验。

·基于配置文件的方式:
①配置文件描述了什么,即应用最终要达到的状态。
②配置文件提供了创建资源的模板,能够重复部署。
③可以像管理代码一样管理部署。
④适合正式的、跨环境的、规模化部署。
⑤这种方式要求熟悉配置文件的语法,有一定难度。

kubectl apply不但能够创建Kubernetes资源,也能对资源进行更新,非常方便。不过Kubernetes还提供了几个类似的命令,例如kubectl create、kubectl replace、kubectl edit和kubectl patch。

配置文件内容较多 语句也比较多 也可以用这个方式获得模板:

[root@master ~]# kubectl   create   deployment test --image=nginx  --dry-run  -o  yaml  > nginx.yml  
创键一个deployment 名字叫test 镜像是nginx 现在不执行 保存的格式为yaml
保存到nginx.yml这个文件里

在这里插入图片描述
①apiVersion:当前配置格式的版本。
②kind:要创建的资源类型,这里是Deployment。
③metadata:该资源的元数据,name是必须的元数据项。
④spec:该Deployment的规格说明。
⑤replicas:指明副本数量,默认为1。
⑥template:定义Pod的模板,这是配置文件的重要部分。
⑦metadata:定义Pod的元数据,至少要定义一个label。label的key和value可以任意指定。
⑧spec:描述Pod的规格,此部分定义Pod中每一个容器的属性,name和image是必须的。

此nginx.yml是一个最简单的Deployment配置文件。

查看yml文件里配置格式的版本

[root@master nginx]# kubectl   api-versions

创键一个yml文件:

mkdir    nginx
[root@master nginx]# cat  nginx.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
 	labels:
	 app: nginx-deply
	name: nginx-deply
spec:
	replicas: 2
	selector:
	 matchLabels:
   	   app: nginx-deply
  	template:
   	 metadata:
	  labels:
    	app: nginx-deply
	spec:
  		containers:
	   	- image: nginx
     	 name: nginx

副本的伸缩 只需要修改yml文件的replicas即可 replicas: 5
收缩的话 修改文件nginx.yml replicas: 3

修改配置文件后执行:

kubectl apply   -f  nginx.yml

查看:

[root@master nginx]# kubectl get pod -o wide 

在这里插入图片描述

K8s的故障转移:
关掉node1:

[root@node1 ~]# systemctl poweroff

查看节点:
在这里插入图片描述
可以看到node1的节点的pod已经停止了
当node1再次上线后停掉的pod会被删除,不会再次回到node1上了
在这里插入图片描述

用标签控制pod所在的节点:
添加标签:

[root@master nginx]# kubectl label nodes  k8snode1   test=abc
node/node1 labeled

查看:

[root@master nginx]# kubectl get   nodes  --show-labels 

在这里插入图片描述

将标签添加到nginx.yml文件里控制pod所在节点:
在这里插入图片描述

[root@kmaster nginx]# kubectl  apply -f  nginx.yml 
deployment.apps/nginx-deply configured

查看pod所在节点 是否所有pod在node1上:

[root@master nginx]# kubectl get pod -o wide 

在这里插入图片描述

把nginx.yml里指定标签的语句去掉pod就会在node1和node2上了

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes之deployment 的相关文章

  • HikariCP连接池

    什么是HikariCP HikariCP是由日本程序员开源的一个数据库连接池组件 代码非常轻量 并且速度非常的快 根据官方提供的数据 在i7 开启32个线程32个连接的情况下 进行随机数据库读写操作 HikariCP的速度是现在常用的C3P
  • "[WinError 10061] 由于目标计算机积极拒绝,无法连接"错误解决办法

    爬虫的时候会经常出现 WinError 10061 由于目标计算机积极拒绝 无法连接 错误这种情况 有可能是LAN口设置不正确 我是在爬取全国天气情况的时候出现的这种错误 后面调了以后可以了 1 控制面板 网络和 Internet Inte
  • 蓝桥杯小白必看 —— Python

    蓝桥杯小白必看 Python 文章目录 蓝桥杯小白必看 Python 一 Python比赛规则 二 Python3 8 6的IDLE环境 1 官网下载地址 2 让编译器显示行数 3 设置自动保存 4 设置页面字体大小 5 快捷键的使用 三
  • 操作系统王道考研复习——第二章(进程管理) 上

    操作系统王道考研复习 第二章 进程管理 上 2 进程管理 2 1 程序执行 2 1 1 程序顺序执行的特征 2 1 2 程序并行执行的特征 2 2 进程与线程 2 2 1 进程的概念和特征 1 程序和进程的区别 2 进程的组成 PCB 程序
  • java删除指定路径下的全部内容

    1 使用过程当中有时会用到清空文件夹的操作 首先传入指定文件夹地址 利用递归的方式清空该文件夹下的全部文件 以及子文件夹 public static void deleteFile File file 判断文件不为null或文件目录存在 i
  • 《Unity Shader入门精要》自学笔记(七)第九章 更复杂的光照 ——光照衰减

    帧调试器FrameDebugger 又是一个好玩的小玩具好用的小工具呢 可以通过Window Analysis Frame Debugger打开 然后点击左上角的Enable 就可以查看了 点击1打开或关闭Frame Debugger 滑动
  • springboot实现ApplicationContextAware接口、使用ThreadLocal获得当前上下文请求的HttpServletRequest

    前端请求的参数可以用requestparam requestbody获得 也可以用HttpServletRequest来获得参数 这里讲用HttpServletRequest来获取前端参数的办法 举例 GetMapping index do
  • 全国计算机等级考试题库二级C操作题100套(第75套)

    第75套 给定程序中 函数fun的功能是 对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序 ss所指字符串数组中共有M个字符串 且串长
  • 从python入门到机器学习的心得贴(持续更新ing

    仅代表个人看法 大学的编程是C语言入的门 专业上的使用也是C语言为主 非码农 但个人觉得 作为21世纪的新新人类 python的工程的各个领域都有融合的价值 于是抽空就把python入了门 一 入门之路 开始也不知道该从哪儿开始 之后看到一
  • 行列式与矩阵的区别

    1 行列式的本质是线性变换的放大率 而矩阵的本质就是个数表 2 行列式行数 列数 矩阵不一定 行数列数都等于n的叫n阶方阵 二者的表示方式亦有区别 3 行列式与矩阵的运算明显不同 1 相等 只有两个同型的矩阵才有可能相等 并且要求对应元素都
  • PyTorch深度学习——Anaconda和PyTorch安装

    一 Anaconda安装 前言 安装anaconda后主要有一下3点好处 1 包含环境管理器conda 2 大量安装基于python的工具包 3 可以创建使用和管理不同的python版本 附上百度百科的解释 下载步骤 1 官网下载anaco
  • Linux部署Nginx并配置https

    1 下载nginx安装包 wget http nginx org download nginx 1 21 6 tar gz 2 解压压缩包 tar zvxf nginx 1 21 6 tar gz 3 初始化configure 配置conf
  • C语言——猜数字小游戏

    实现一个猜数字的小游戏 gt 首先要用的c语言的随机生成数 在C语言中 我们一般使用
  • import-module的注意事项与NDK_MODULE_PATH的配置

    具体的语句多参考其他正确的Android mk import module的功能 导入外部模块的 mk文件 和 include基本一样 概念上的区别是include导入的是由我们自己写的 mk 而import module导入的是外部库 外
  • C语言中设置文字颜色

    记得刚接触C语言时 上机运行代码输出结果每次都是黑色的控制台白色的文字 就像下面这样 视觉体验极差 十分的不美观 感觉很low 这就引发了我的思考 输出结果必须是黑框白字吗 显然不是这样的 我们可以自己设置文字和文本颜色 那么该如何设置呢
  • VS CODE 离线插件下载

    VS CODE 离线插件下载 老方法 一 进入VSCODE 插件下载官网 二 搜索需要下载的插件 三 进行地址替换 四 下载 五 在windows环境下安装插件 新方法 一 进入VSCODE 插件下载官网 二 搜索需要下载的插件 三 下载
  • 【原創】checkstyle配置文件说明(checkstyle 3.5)

    属性 说明 basedir 代码所在的位置 AbstractClassName format 定义抽象类的命名规则 PackageName format 定义包名的命名规则 TypeName format 定义类和接口的命名规则 token
  • 警惕!MySQL成数据勒索新目标

    据最新报道显示 继MongoDB和Elasticsearch之后 MySQL成为下个数据勒索目标 从2月12日凌晨开始 已有成百上千个开放在公网的MySQL数据库被劫持 删除了数据库中的存储数据 攻击者留下勒索信息 要求支付比特币以赎回数据
  • Kibana常用命令

    Kibana常用命令 查看集群的健康情况 GET cat health v 查看节点的情况 GET cat nodes v 查询各个索引状态 GET cat indices v 创建索引 PUT movie index 查看某一个索引的分片
  • 9月17日星期二 恒指/美原油/美黄金 走势分析

    财经早餐 2019年09月17日星期二 重点关注的财经数据与事件 09 30 中国70个大中城市住宅销售价格月报 09 30 澳洲联储公布9月货币政策会议纪要 17 00 德国及欧元区9月ZEW经济景气指数 21 15 美国8月工业产出月率

随机推荐

  • idea删除模块后重新创建显示该模块已经被注册

    idea删除模块后重新创建显示该模块已经被注册 原因 注册信息没有删除干净 解决方案 找到gradle xml modules xml workspace xml文件 进一步删除模块信息
  • odoo 打开form 视图 默认为编辑状态

    为了编辑方便 客户会经常要求 odoo 打开form 视图 默认为编辑状态 或者根据某些条件 为编辑状态 下面介绍两种方式进行 1 在form 初始化加载时进行拦截 设置属性打开编辑状态 FormView include 满足条件 form
  • springboot的yaml写法之map、list和map<String,List>

    分两步 设置yaml 注入参数 1 设置yaml 文件名 application yml runcommand firstMapList key11 k1 k2 k3 key22 k1 k2 k3 list lk1 lk2 lk3 maps
  • java 编译时注解框架 lombok-ex

    lombok ex lombok ex 是一款类似于 lombok 的编译时注解框架 编译时注 拥有运行时注解的便利性 和无任何损失的性能 主要补充一些 lombok 没有实现 且自己会用到的常见工具 创作目的 补充 lombok 缺失的注
  • nginx输出php错误日志,Nginx错误日志(error_log)配置及信息详解

    Nginx状态信息 status 配置及信息详解 nginx与php fpm一样内建了一个状态页 对于想了解nginx的状态以及监控nginx非常有帮助 为了后续的zabbix监控 我们需要先了解一下nginx的状态页 Nginx状态信息
  • 【Matplotlib】【Python】如何使用matplotlib颜色映射

    颜色映射 colormap 是一系列颜色 它们从起始颜色渐变到结束颜色 在可视化中 颜色映射用于突出数据的规律 例如 你可能用较浅的颜色来显示较小的值 并使用较深的颜色来显示较大的值 模块pyplot内置了一组颜色映射 要使用这些颜色映射
  • 学习UpdatePanel控件-

    原文可以显示图片 转载 http blog csdn net ILOVEMSDN archive 2007 11 11 1879343 aspx UpdatePanel控件的使用 2008 10 07 05 46 P M ScriptMan
  • JVM 二. 类加载相关

    目录 一 类的加载 二 类的加载器 类加载器的双亲委派机制 一 类的加载 什么是类的加载 我们编写java代码存储为 java结尾的文件 经过编译器编译 将java代码转换为虚拟机指令生成 class结尾的文件 当需要某个类时 虚拟机加载指
  • ZCMU--5155: 小蒜数(C语言)

    题目描述 在所有不大于 n 的正整数中 蒜头君将不是 9 的倍数的所有奇数剔除掉 将是 7 的倍数的所有偶数剔除掉 剩下的数从小到大首尾相接拼起来 组成了一个 小蒜数 请问这个数一共有多少位 输入 输入为整数 n 1 n 1000 测试点编
  • swiper中使用iframe导致无法滑动的3个解决方案

    看到这个标题 很多同学都会疑惑 为什么swiper中要放iframe呢 事实上 当我遇到这个需求前 我也没想到会有这样的骚操作 swiper中嵌入网站 每次滑动切换一个网站 想想听炫酷的 可做起来就不酷了 当你开开心心的把iframe放到每
  • 音频格式RAW和PCM区别和联系

    定义 RAW 在一些外国品牌的播放机中名为 BitSream 我们通常称为 源码 意义是把光盘上的音频格式不加处理地 原汁原味 地从同轴和光纤输出 这就要求用户的功放具备这种音频格式的解码功能 PCM 名为 脉冲调制编码 它的作用是当前的将
  • 多益校招面经--软件开发岗

    多益网络2021校招面经 软件开发岗 笔试通过 专业面试凉凉 第一次面试 太紧张了 很多东西提起来脑子一片空白 现在结束后想了一下都能想明白 以下是面经 1 个人介绍 2 项目介绍 3 开发语言的了解程度 个人是C 4 C 和JAVA的区别
  • 通过接口传递经纬度,并计算距离

    微信小程序调用接口 存储经纬度 PostMapping update location public R updateLocation RequestBody UserQuery userQuery if userService getLo
  • MDK5__配色方案的修改

    一 必要的知识 与MDK主题相关的文件有两个 在X Keil v5 UV4路径下 global propglobal prop def其中global prop def是系统默认的主题配置 如果修改过字体等 系统会生成一个global pr
  • Qt元对象系统及应用(一)

    目录 1 元对象系统 2 元对象与属性系统 2 1 动态属性 3 元对象与信号槽 3 1 信号槽应用场景 3 2 信号槽的连接 3 3 信号槽要点总结 1 元对象系统 元对象系统 Meta Object System 是Qt框架中一个非常重
  • python学习目录,从入门到上手

    这是我学习python的一套流程 根据书本学习 从入门到上手 整理不易 一 Python入门 环境搭建 变量 数据类型 二 Python运算符 条件结构 循环结构 三 Python函数 四 做一次综合练习 做一个控制台的员工管理 需求 员工
  • WMS仓库管理系统与ERP仓储系统的区别与联系

    现代企业越来越重视物流及仓储管理 然而提到WMS仓库管理系统与ERP仓储系统 许多企业管理者依旧是一脸茫然的表情 无法清晰的区别分辨 其实这两款软件在功能上有相似的地方 下面就由沈阳达策带您一看究竟 实际上 ERP仓储系统和WMS仓库管理系
  • STM32_HAL库编程_串口+DMA接收数据异常问题记录

    1 开发环境概述 Keil 5 27 STM32CUBEMX STM32F103RCT6 2 问题现象 在利用RCT6做主机通信 C8T6做从机通信时 拔插从机电路板 有概率出现主机通信故障无法接收到从机数据 或者从机通信故障无法接收到主机
  • 安装邮件服务器之四

    20 配置cyrus sasl 为了支持maildrop 先加入vmail用户 pw adduser vmail u 1003 s sbin nologin d dev null 你需要创建 usr local lib sasl2 smtp
  • Kubernetes之deployment

    1用Deployment运行应用 Kubernetes通过各种Controller来管理Pod的生命周期 为了满足不同业务场景 Kubernetes开发了Deployment ReplicaSet StatefuleSet Job等多种Co