K8s-yaml的使用及命令

2023-11-16

YAML配置文件管理对象
对象管理:
# 创建deployment资源
kubectl create -f nginx-deployment.yaml
# 查看deployment
kubectl get deploy
# 查看ReplicaSet
kubectl get rs
# 查看pods所有标签
kubectl get pods --show-labels
# 根据标签查看pods
kubectl get pods -l app=nginx
# 滚动更新镜像
kubectl set image deployment/nginx-deployment nginx=nginx:1.11
或者
kubectl edit deployment/nginx-deployment
或者
kubectl apply -f nginx-deployment.yaml
# 实时观察发布状态:
kubectl rollout status deployment/nginx-deployment
# 查看deployment历史修订版本
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx-deployment --revision=3
# 回滚到以前版本
kubectl rollout undo deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-revision=3
# 扩容deployment的Pod副本数量
kubectl scale deployment nginx-deployment --replicas=10
# 设置启动扩容/缩容
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80

对象管理实例:vim nginx.deployment.yaml

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.10
        ports:
        - containerPort: 80

服务发现实例:vim nging.service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    run: nginx
  name: nginx
  namespace: default
spec:
  ports:
  - port: 88
    targetPort: 80
  selector:
    app: nginx

清理:

kubectl delete -f nginx-deployment.yaml

kubectl delete -f nginx-service.yaml

POD作用:

 Pod状态  创建/查询/更新/删除  重启策略  健康检查  数据持久化和共享  hostPort  问题定位

Pod管理-创建/查询/更新/删除
基本管理:
# 创建pod资源
kubectl create -f pod.yaml
# 查看pods
kubectl get pods pod-test
# 查看pod描述
kubectl describe pod pod-test
# 替换资源
kubectl replace -f pod.yaml -force
# 删除资源
kubectl delete pod pod-test

支持三种策略:

Always:当容器终止退出后,总是重启容器,默认策略。

OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。

Never:当容器终止退出,从不重启容器。

Pod实例:vim pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-test
  labels:
     os: centos
spec:
  containers:
  - name: hello
    image: centos:7
    env:
    - name: Test
      value: "123456"
    command: ["bash","-c","while true;do date;sleep 1;done"]
  restartPolicy: OnFailure

Pod管理-健康检查:

提供Probe机制,有以下两种类型:
livenessProbe
如果检查失败,将杀死容器,然后根据Pod的重启策略来决定是否
重启。
readinessProbe
如果检查失败,Kubernetes会把Pod从服务代理的分发后端剔除。
Probe支持以下三种检查方法:
httpGet
发送HTTP请求,返回200-400范围状态码为成功。
exec
执行Shell命令返回状态码是0为成功。
tcpSocket
发起TCP Socket建立成功。

实例:vim pod2.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.10
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
        path: /index.html
        port: 80

Pod管理-数据持久化和共享:

vim pod3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-test1
  labels:
     test: centos
spec:
  containers:
  # 第一个容器
  - name: hello-write
    image: centos:7
    command: ["bash","-c","for i in {1..1000};do echo $i >> /data/hello;sleep 1;done"]
  # 第二个容器
  - name: hello-read
    image: centos:7
    command: ["bash","-c","for i in {1..1000};do cat $i >> /data/hello;sleep 1;done"]
    volumeMounts:
      - name: data
        mountPath: /data
  # 数据卷
  volumes:
  - name: data
    hostPath:
      path: /data

Pod端口映射:

vim pod4.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.10
    ports:
    - name: http
      containerPort: 80
      hostIP: 0.0.0.0
      hostPort: 80
      protocol: TCP
   - name: https
     containerPort: 443
     hostIP: 0.0.0.0
     hostPort: 443
     protocol: TCP

参考:
https://www.cnblogs.com/fuyuteng/p/9460534.html

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

K8s-yaml的使用及命令 的相关文章

  • [云原生专题-22]:K8S - 集群编排工具K8S与SWARM比较与技术选择

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122750196 目录 前言 第1章
  • k8s部署gitlab最新版并初始化和登录

    前提条件是已经部署了k8s环境 采用k8s部署gitlab作为devops的测试环境 更加简洁和方便 1 准备工作 1 1 创建nfs共享目录 在nfs服务器创建共享目录 部署的gitlib使用共享目录来进行持久化 这样不管在哪个节点运行g
  • K8s中的Deployment

    Deployment是kubernetes在1 2版本中引入的新概念 用于更好的解决Pod的编排问题 为此 Deployment在内部使用了ReplicaSet来实现目的 我们可以把Deployment理解为ReplicaSet的一次升 级
  • Kubernetes Pod 故障归类与排查方法

    1 Pod 概念 Pod是kubernetes集群中最小的部署和管理的基本单元 协同寻址 协同调度 Pod是一个或多个容器的集合 是一个或一组服务 进程 的抽象集合 Pod中可以共享网络和存储 可以简单理解为一个逻辑上的虚拟机 但并不是虚拟
  • DHorse系列文章之操作手册

    在介绍DHorse的操作之前 我们先来看一下发布一个系统的流程是什么样的 发布系统的流程 我们以一个Springboot系统为例 来说明一下发布流程 1 首先从代码仓库下载代码 比如Gitlab 2 接着是进行打包 比如使用Maven 3
  • k8s job机制初探

    博客作为学习笔记记录 若有理解或表述错误 欢迎指出 k8s的job机制 k8s官网参考 k8s的job是用来执行一次性任务的一类资源 相关的还有cronjob 用于执行以下周期性任务 部署job之后 k8s会起对应pod 当pod的状态为f
  • k8s Trouble Shooting 故障排除

    本文要讲的是k8s的故障排除 比较浅 最近刚入门 主要涵盖的内容是查看k8s对象的当前运行时信息 对于服务 容器的问题是如何诊断的 对于某些复杂的问题例如pod调度问题是如何排查的 1 查看系统的Event事件 在对象资源 pod serv
  • 基于hostpath的k8s pod日志持久化

    基于hostpath的k8s pod日志持久化 前置条件 step1 修改服务的yaml文件 step2 推送日志到minio版保存 step3 优化 附加 简单了解 前置条件 考虑到pod的多副本 但同时需要将日志集中收集起来 所以采用h
  • wireshark 抓包学习TLS握手(ECDHE)

    首先放出经典的流程图 TLS 握手共分四个阶段 为了便于理解 我用wireshark抓了包来分析每一个阶段 Client Hello 第一次握手 客户端首先会发一个 Client Hello 消息 消息里面有客户端使用的 TLS 版本号 支
  • k8s部署springboot

    前言 首先以SpringBoot应用为例介绍一下k8s的部署步骤 1 从代码仓库下载代码 比如GitLab 2 接着是进行打包 比如使用Maven 3 编写Dockerfile文件 把步骤2产生的包制作成镜像 4 上传步骤3的镜像到远程仓库
  • kubernetes集群更新证书(kubeadm方式)

    一 kubernets证书详情 1 查看证书 tree etc kubernetes pki etc kubernetes pki apiserver crt apiserver etcd client crt apiserver etcd
  • kube-flannel.yml

    flannel作为k8s的集群中常用的网络组件 其yml文件的获取 建议去github中获取 具体的获取方式如下 apiVersion policy v1beta1 kind PodSecurityPolicy metadata name
  • k8s--基础--23.1--认证-授权-准入控制--介绍

    k8s 基础 23 1 认证 授权 准入控制 介绍 1 介绍 k8s对我们整个系统的认证 授权 访问控制做了精密的设置 对于k8s集群来说 apiserver是整个就集群访问控制的唯一入口 我们在k8s集群之上部署应用程序的时候 可以通过宿
  • Kubernetes 集群部署 ------ 二进制部署(二)

    单节点 https blog csdn net Yplayer001 article details 104234807 先具备单master1节点部署环境 三 master02部署 优先关闭防火墙和selinux服务 在master01上
  • k8s问题 CrashLoopBackOff

    我们创建资源发现资源出现CrashLoopBackOff解决 CrashLoopBackOff 告诉我们 Kubernetes 正在尽力启动这个 Pod 但是一个或多个容器已经挂了 或者正被删除 root localhost kubectl
  • namespace命令空间

    目录 1 解决什么问题 2 基本介绍 2 1 定义 2 2 应用场景 3 使用案例 4 资源配额 5 标签 5 1 定义 5 2 pod资源打标签 5 3 查看标签 1 解决什么问题 命令空间类似于C 中的命名空间 当用户数量较多的集群 才
  • K8S暴露服务的三种方式

    文章目录 暴露服务的三种方式 NodePort LoadBalane Ingress 内容参考 暴露服务的三种方式 NodePort 将服务的类型设置成NodePort 每个集群节点都会在节点上打 开 一 个端口 对于NodePort服务
  • k8s学习(五)ReplicaSet的使用

    ReplicaSet ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合 可确保指定数量的pod在任何设定的时间运行 因此 它通常用来保证给定数量的 完全相同的 Pod 的可用性 示例 1 nginx
  • k8s部署Prometheus抓取pods的metrics

    1 暴露pods给Prometheus抓取 spec replicas app replicas template metadata annotations prometheus io scrape true prometheus io p
  • flannel和calico区别

    k8s网络模式 Flannel数据包在主机间转发是由backend实现的 目前已经支持UDP VxLAN host gw等多种模式 VxLAN 使用内核中的VxLAN模块进行封装报文 也是flannel推荐的方式 host gw虽然VXLA

随机推荐

  • late_initcall和module_init

    late initcall和module init 分类 linux驱动程序设计 2012 11 04 15 14 3680人阅读 评论 0 收藏 举报 所有的 init函数在区段 initcall init中还保存了一份函数指针 在初始化
  • unittest+ddt自动化测试相关知识点

    unittest是Python单元测试框架 主要分为 测试用例TestCase 一个完整的测试流程 测试套件TestSuite 多个测试用例集合在一起 执行 结果呈现TextTestRunner 用例运行和结果呈现 结果呈现常用HtmlTe
  • 环境配置tips

    一 MySQL在Linux下数据库名 表名 列名 别名大小写规则是这样的 1 数据库名与表名是严格区分大小写的 2 表的别名是严格区分大小写的 3 列名与列的别名在所有的情况下均是忽略大小写的 4 变量名也是严格区分大小写的 修改不区分大小
  • OpenWrt系统无法进入Luci解决办法之一

    当在OpenWrt系统重启后 打开Luci后台时有时可能会遇到以下错误报告 usr lib lua luci dispatcher lua 577 bad argument 1 to pairs table expected got nil
  • cocos2d-x 4.0 版本修改点

    转自 https discuss cocos2d x org t cocos2d x v4 0 released 48487 Features support metal on iOS macOS use CMake for all pla
  • vue : 无法加载文件 \Node.js\node_global\vue.ps1。未对文件 \Node.js\node_global\vue.ps1 进行数字签名。无法在当前系统上运行该脚本。

    vue 无法加载文件 D Node js node global vue ps1 未对文件 D Node js node global vue ps1 进行数字签名 无法在当前系统上运行该脚本 最近在使用powershell下使用 vue
  • pandas的行列获取/pandas iloc和loc的使用/如何获取pandas的行和列

    Pandas行和列的获取 由于平时没有系统的学习pandas 导致在实际应用过程中 对于获取df中的行和列经常出现问题 于是总结一下 供自己以后参考 参考的书籍在线版链接 利用 Python 进行数据分析 第 2 版 0 查看手册 请当你看
  • 深度学习之基于VGG16与ResNet50实现鸟类识别

    鸟类识别在之前做过 但是效果特别差 而且ResNet50的效果直接差到爆炸 这次利用VGG16与ResNet50的官方模型进行鸟类识别 1 导入库 import tensorflow as tf import numpy as np imp
  • ubuntu安装/查看已安装包的方法

    自己折腾ubuntu安装包来着 发现一篇文章非常实用 将apt get和dpkg等命令的参数讲解非常全面 于是转载过来 中文的比英文的帮助看着还是顺手一点 原文链接 http www cnblogs com forward archive
  • vue 给页面局部加水印和全部加水印

    局部加水印 在公共类js下 新建一个watermask js 代码如下 export default tool js addWaterMark const strArr localStorage getItem loginUserName
  • 图的深度优先遍历(Depth First Search)

    图的深度优先遍历 Depth First Search 基本思想 类似于二叉树的先序遍历 假设图中所有结点均未被访问 从初始结点访问 访问其第一个邻接结点 接着以被访问的邻接结点作为初始结点 访问它的第一个邻接结点 递归的过程 算法步骤 访
  • Cesium快速入门

    Cesium是全世界使用最广泛的3D WebGIS引擎 国内有若干个GIS厂家的3D GIS引擎也是基于Cesium进行开发 随着国家 新基建 数字化 战略的不断发展深化 越来越多的城市数字化项目需要用上3D GIS引擎 对Web端而言 C
  • 简单记录搭建SSM(Spring+Spring MVC+Mybatis)整合

    业务层 View 数据显示 Controller 业务控制 执行成功怎么处理 执行失败怎么处理 Service 业务处理 Model 数据库相关实体类 增删改查 工程搭建 第一步 创建Maven web工程 点击finish创建完毕工程 第
  • C++在路径下新建一个指定名称的文件夹

    在保存数据是 我们希望将新生成的数据单独保存在一个文件夹中 其实我们可以通过程序自动生成一个指定名称的文件夹 存放数据 而不必提前手动新建文件夹并修改名称 代码实现的方法也很简单 但是需要注意的是该方法需要包含windows h头文件 代如
  • 树莓派——制作静态库、动态库

    库的特点 库是可执行代码的二进制形式 即将源代码转换成二进制的源代码 相当于对源代码进行了加密 别人可以看见库使用库 但是看不见库的源代码 2种类型库 静态库 libxxx a 动态库 libxxx so 静态库 在程序执行前就加入到目标程
  • Spring IoC是什么

    IoC是什么 Ioc Inversion of Control 即 控制反转 不是什么技术 而是一种设计思想 在Java开发中 Ioc意味着将你设计好的对象交给容器控制 而不是传统的在你的对象内部直接控制 如何理解好Ioc呢 理解好Ioc的
  • FDTD solutions——TFSF(全场散射场)光源及斜入射

    每天一遍 防止忘记 初始建立仿真文件 1 建立物理结构 几何结构 材料特性 2 定义仿真区域 边界条件 3 设置激励源 光源 4 设置监视器 至少使用一个时间监视器 分析组 只记录需要的数据 运行与仿真 1 运行仿真文件 分布式并行运算 并
  • 深度学习中的目标识别

    博主简介 博主是一名大二学生 主攻人工智能研究 感谢让我们在CSDN相遇 博主致力于在这里分享关于人工智能 c Python 爬虫等方面知识的分享 如果有需要的小伙伴可以关注博主 博主会继续更新的 如果有错误之处 大家可以指正 专栏简介 本
  • 车联网企业排行榜

    1 为紧跟车联网行业发展动态 聚焦优质市场主体 中国价值公司100排行榜之车联网企业排行榜从经营分析 发展能力以及社会责任三个维度对30家车联网重点企业进行综合评分 2 车载信息服务领域 市场主体多样 角色多元 以百度 腾讯 博泰 四维图新
  • K8s-yaml的使用及命令

    YAML配置文件管理对象 对象管理 创建deployment资源 kubectl create f nginx deployment yaml 查看deployment kubectl get deploy 查看ReplicaSet kub