修炼k8s+flink+hdfs+dlink(四:k8s(一)概念)

一:概念

1. 概述

1.1 kubernetes对象.

k8s对象包含俩个嵌套对象字段。
spec(规约):期望状态
status(状态):当前状态
当创建对象的时候,会按照spec的状态进行创建,如果这些实例中有些失败了。那么会重新启动一个新的来替换这个实例。

对象样例
按照规定,app要求主体是json格式。但是也可以使用YAML清单格式,后续通过http访问app的时候,会将信息转化位JSON格式或者其他受支持的序列化格式。

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:selector:matchLabels:app: nginxreplicas: 2 # 告知 Deployment 运行 2 个与该模板匹配的 Podtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80
  • apiVersion - 创建该对象所使用的 Kubernetes API 的版本

  • kind - 想要创建的对象的类别

  • metadata - 帮助唯一标识对象的一些数据,包括一个 name 字符串、UID 和可选的 namespace

  • spec - 你所期望的该对象的状态

1.1.1 对象的管理(增删)

三种模式
在这里插入图片描述

  1. 指令式命令
    案例:通过创建 Deployment 对象来运行 nginx 容器的实例。
kubectl create deployment nginx --image nginx

权衡
与对象配置相比的优点:

  1. 命令用单个动词表示。
  2. 命令仅需一步即可对集群进行更改。

与对象配置相比的缺点:

  • 命令不与变更审查流程集成。
  • 命令不提供与更改关联的审核跟踪。
  • 除了实时内容外,命令不提供记录源。
  • 命令不提供用于创建新对象的模板。
  1. 指令式对象配置
    创建对象
kubectl create -f nginx.yaml

删除俩个对象

kubectl delete -f nginx.yaml -f redis.yaml

通过覆盖活动配置来更新配置文件中定义的对象

kubectl replace -f nginx.yaml

权衡
与指令式命令相比的优点:

对象配置可以存储在源控制系统中,比如 Git。
对象配置可以与流程集成,例如在推送和审计之前检查更新。
对象配置提供了用于创建新对象的模板。

与指令式命令相比的缺点:

对象配置需要对对象架构有基本的了解。
对象配置需要额外的步骤来编写 YAML 文件。

与声明式对象配置相比的优点:

指令式对象配置行为更加简单易懂。
从 Kubernetes 1.5 版本开始,指令对象配置更加成熟。

与声明式对象配置相比的缺点:

指令式对象配置更适合文件,而非目录。
对活动对象的更新必须反映在配置文件中,否则会在下一次替换时丢失。

  1. 声明式对象配置
    案例
    处理 configs 目录中的所有对象配置文件,创建并更新活跃对象。 可以首先使用 diff 子命令查看将要进行的更改,然后在进行应用:
kubectl diff -f configs/
kubectl apply -f configs/

递归处理目录:

kubectl diff -R -f configs/
kubectl apply -R -f configs/

权衡
与指令式对象配置相比的优点:

对活动对象所做的更改即使未合并到配置文件中,也会被保留下来。
声明性对象配置更好地支持对目录进行操作并自动检测每个文件的操作类型(创建,修补,删除)。

与指令式对象配置相比的缺点:

声明式对象配置难于调试并且出现异常时结果难以理解。
使用 diff 产生的部分更新会创建复杂的合并和补丁操作。

1.1.2 对象名称和ID。

对象名称
三种命名规则
DNS 子域名

很多资源类型需要可以用作 DNS 子域名的名称。 DNS 子域名的定义可参见 RFC 1123。 这一要求意味着名称必须满足如下规则:

不能超过 253 个字符
只能包含小写字母、数字,以及 ‘-’ 和 ‘.’
必须以字母数字开头
必须以字母数字结尾

RFC 1123 标签名

某些资源类型需要其名称遵循 RFC 1123 所定义的 DNS 标签标准。也就是命名必须满足如下规则:

最多 63 个字符
只能包含小写字母、数字,以及 ‘-’
必须以字母数字开头
必须以字母数字结尾

RFC 1035 标签名

某些资源类型需要其名称遵循 RFC 1035 所定义的 DNS 标签标准。也就是命名必须满足如下规则:

最多 63 个字符
只能包含小写字母、数字,以及 ‘-’
必须以字母开头
必须以字母数字结尾

ID
k8s会对整个生命周期中创建的每一个对象都有不同的UID。

1.1.3 标签和选择算符。

标签
定义
标签是附加到kubenetes对象上的键值对。标签在用于指定的用户有意义且相关的对象的标识属性,但不对核心系统有语义含义。
标签使用户能够以松散耦合的方式将他们自己的组织结构映射到系统对象,而无需客户端存储这些映射。
标签能够支持高效的查询和监听操作,对于用户界面和命令行是很理想的
规则
必须为 63 个字符或更少(可以为空)
除非标签值为空,必须以字母数字字符([a-z0-9A-Z])开头和结尾
包含破折号(-)、下划线(_)、点(.)和字母或数字
选择运算符
用户外面根据标签进行选择。
等值需求 =(等于)、==(等于) 和 !=(不等于)
基于集合 in、notin 和 exists

1.1.4 命名空间。

名字空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。
k8s在启动的时候会有四个初始化名字空间
default
Kubernetes 包含这个名字空间,以便于你无需创建新的名字空间即可开始使用新集群。
kube-node-lease
该名字空间包含用于与各个节点关联的 Lease(租约)对象。 节点租约允许 kubelet 发送心跳, 由此控制面能够检测到节点故障。
kube-public
所有的客户端(包括未经身份验证的客户端)都可以读取该名字空间。 该名字空间主要预留为集群使用,以便某些资源需要在整个集群中可见可读。 该名字空间的公共属性只是一种约定而非要求。
kube-system
该名字空间用于 Kubernetes 系统创建的对象。

增加命名空间

要为当前请求设置名字空间,请使用 --namespace 参数。
kubectl run nginx --image=nginx --namespace=<名字空间名称>
kubectl get pods --namespace=<名字空间名称>

1.1.5 注释。

apiVersion: v1
kind: Pod
metadata:name: annotations-demoannotations:imageregistry: "https://hub.docker.com/"
spec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80

annotations:
imageregistry: “https://hub.docker.com/”

1.1.6 字段选择器。

允许你根据一个或多个资源字段的值筛选 Kubernetes 对象。
语法 一:=、== 和 != (= 和 == 的意义是相同的)操作符

kubectl get pods --field-selector status.phase=Running

语法二:链式选择器,使用’,‘隔开。

kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always

1.1.7 Finalizers。

Finalizer 是带有命名空间的键,告诉 Kubernetes 等到特定的条件被满足后, 再完全删除被标记为删除的资源。
当你使用清单文件创建资源时,你可以在 metadata.finalizers 字段指定 Finalizers。

1.1.8 属主合附属。

在 Kubernetes 中,一些对象是其他对象的“属主(Owner)。一个有效的属主引用, 包含与附属对象同在一个命名空间下的对象名称和一个 UID。 Kubernetes 自动为一些对象的附属资源设置属主引用的值。

metadata.ownerReferences
附属对象有一个 metadata.ownerReferences 字段,用于引用其属主对象。一个有效的属主引用。

ownerReferences.blockOwnerDeletion
附属对象还有一个 ownerReferences.blockOwnerDeletion 字段,该字段使用布尔值, 用于控制特定的附属对象是否可以阻止垃圾收集删除其属主对象

1.1.9 共享标签。

除了 kubectl 和 dashboard 之外,你还可以使用其他工具来可视化和管理 Kubernetes 对象。 一组通用的标签可以让多个工具之间相互操作,用所有工具都能理解的通用方式描述对象。

在这里插入图片描述

# 这是一段节选
apiVersion: apps/v1
kind: StatefulSet
metadata:labels:app.kubernetes.io/name: mysqlapp.kubernetes.io/instance: mysql-abcxzyapp.kubernetes.io/version: "5.7.21"app.kubernetes.io/component: databaseapp.kubernetes.io/part-of: wordpressapp.kubernetes.io/managed-by: helm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kotlin的作用域函数 let、also、with、run、apply

作用域函数主要有下面这几种&#xff0c;apply &#xff0c;with 、run 、let 、以及 also 。这些函数非常类似&#xff0c;它们的主要区别&#xff1a; 引⽤上下⽂对象的⽅式 &#xff08;this / it&#xff09;返回值 他们在开发中的使用场景主要有两个&#xff0c;一是非空…

javascript中map和filter的区别与联系

javascript中map和filter的区别与联系如何获取对象数组中某个值 javascript中map和filter的区别与联系 在 JavaScript 中&#xff0c;map 和 filter 是两个常用的数组方法&#xff0c;用于对数组进行转换和过滤操作。它们的区别和联系如下&#xff1a; 功能不同&#xff1a; m…

【C++11算法】is_sorted、is_sorted_until

文章目录 前言一、is_sorted函数1.1 is_sorted是什么1.2 函数原型1.3 示例代码1二、is_sorted_until2.1 is_sorted_until是什么&#xff1f;2.2 函数原型2.3示例代码2 总结 前言 在C11标准中&#xff0c;引入了一系列强大的算法函数&#xff0c;用于处理容器和序列。这些算法函…

将网站域名访问从http升级到https(腾讯云/阿里云)

文章目录 1.前提说明2.服务器安装 docker 与 nginx2.1 安装 docker&#x1f340; 基于 centos 的安装&#x1f340; 基于ubuntu 2.2 配置阿里云国内加速器&#x1f340; 找到相应页面&#x1f340; 创建 docker 目录&#x1f340; 创建 daemon.json 文件&#x1f340; 重新加载…

MATLAB算法实战应用案例精讲-【图像处理】SLAM技术详解(最终篇)

目录 前言 知识储备 点云数据 传感器 3D视觉方案 几个高频面试题目

Linux命令(99)之rz

linux命令之rz 1.rz介绍 linux命令rz是用来把文件从windows等平台上传到Linux上 2.rz用法 rz [参数] file rz参数 参数说明-b使用binary的方式上传&#xff0c;不解释字符为ascii-y相同文件名&#xff0c;覆盖-E相同文件名&#xff0c;不会将其覆盖&#xff0c;而是会在所上…

小程序如何设置各种时间参数

在小程序管理员后台->基本设置处&#xff0c;可以设置各种时间。例如待支付提醒时间、待支付取消时间、自动发货时间、自动收货时间、自动评价时间等等。下面具体解释一下各个时间的意思。 1. 待支付提醒时间&#xff1a;在用户下单后&#xff0c;如果一段时间内没有完成支付…

一些概念梳理

MinGW // 适用于32位和64位Windows的GCC和LLVM的完整运行时环境 A complete runtime environment for GCC & LLVM for 32 and 64 bit Windows.MinGW,a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Micro…

Ajax跨域访问,访问成功但一直走error不走success的的问题解决

Ajax跨域访问,访问成功但一直走error不走success的的问题解决 通过搜索各种资料&#xff0c;终于解决啦&#xff0c;废话不多说了&#xff0c;还是老规矩直接上代码&#xff1a; 我这里用了jsonp&#xff0c;有想了解的点击 : jsonp 前端代码&#xff1a; $.ajax({type:post…

03黑马店评-添加商户缓存和商户类型的缓存到Redis

商户查询缓存 什么是缓存 实际开发过程中数据量可以达到几千万,缓存可以作为避震器防止过高的数据访问猛冲系统,避免系统内的操作线程无法及时处理信息而瘫痪 缓存(Cache)就是数据交换的缓冲区(储存临时数据的地方),我们俗称的"缓存"实际就是缓冲区内的数据(一般从…

flask python 设置定时任务 flask 周期性执行任务方案

flask 通常使用 flask_apscheduler 框架设计定时任务&#xff0c;flask_apscheduler 功能很全面&#xff0c;能按设定的时间规则执行任务&#xff0c;可以持久化到各类数据库&#xff08;mysql&#xff0c;redis&#xff0c;mongodb&#xff09;&#xff0c;实现对定时任务增、…

Docker与Serverless计算的集成: Docker容器如何与Serverless计算结合。

文章目录 1. Docker容器的可移植性2. Serverless计算的自动伸缩性3. 使用Serverless与Docker容器a. 自托管Serverless平台b. 使用容器服务 4. 使用案例&#xff1a;图像处理服务5. 结论 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;…

【常用页面记录】vue+elementUI实现搜索框+上拉加载列表

一、代码 <template><div class"mainBox"><div class"headbox"><el-input placeholder"请输入文件名称搜索" prefix-icon"el-icon-search" v-model"fileName" :clearable"true" change&qu…

C++特性:继承,封装,多态

继承 封装 类把⾃⼰的数据和⽅法只让可信的类或者对象操作&#xff0c;对不可信的进⾏隐藏&#xff0c;如&#xff1a;将公共的数据或⽅法使⽤public修饰&#xff0c;⽽不希望被访问的数据或⽅法采⽤private修饰 多态 即向不同对象发送同⼀消息&#xff0c;不同的对象在接收…

React编写CSS方式

1. css modules css modules并不是React特有的解决方案&#xff0c;而是所有使用了类似于 webpack配置的环境 下都可以使用的。 如果在其他项目中使用它&#xff0c;那么我们需要自己来进行配置&#xff0c;比如 配置webpack.config.js中的modules: true 等。 React的脚手架已经…

php中使用Imagick转换PDF第一页为PNG图片并且识别出二维码

前言&#xff1a;关于php中如何安转Imagick可见相关教程&#xff0c;在识别二维码用到了这个扩展&#xff1a; khanamiryan/php-qrcode-detector-decoder 需要注意的是目前该扩展已经更新到了2.0.2&#xff0c;默认使用composer安转不指定版本会安装最新版本的扩展&#xff0c;…

【Linux服务端搭建及使用】

连接服务器的软件&#xff1a;mobaxterm 设置root 账号 sudo apt-get install passwd #安装passwd 设置方法 sudo passwd #设置root密码 su root #切换到root账户设置共享文件夹 一、强制删除原有环境 1.删除python rpm -qa|grep pytho…

获取西华大学新闻网站信息(爬虫样例)

利用python的爬虫功能进行信息爬取&#xff0c;关键在于源码分析&#xff0c;代码相对简单。 1 源代码分析 访问网站&#xff0c;按下F12&#xff0c;进行元素查找分析。 2 代码实现 from requests import get from bs4 import BeautifulSoupdef getXhuNews(pageNum1):&qu…

作用域理解

概念:它是指对某一变量和方法具有访问权限的代码空间, 在JS中, 作用域是在函数中维护的。表示变量 或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。 ES5的作用域只有两种:全局作用域和局部作用域 全局作用域 var a1; //全局作用域 function fn1(…