IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> K8S资源管理-Yml(K8S学习二) -> 正文阅读

[系统运维]K8S资源管理-Yml(K8S学习二)

资源管理介绍

????????在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理k8s

????????K8s的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个容器,并将指定的程序跑在容器中

? ? ? ? K8s的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般不会直接管理pod,儿时通过Pod控制器来管来pod的

? ? ? ? Pod可以提供服务之后,就要考虑如何访问Pod中的服务。K8S提供了Service资源实现这个功能。当然,如果POD中程序的数据需要持久化,K8S还提供了各种存储系统

?学习K8S的核心,就是学习如何对集群上的Pod、Pod控制器、Service、储存等各种资源进行操作

YAML语言介绍

? ? ? ? YAML是一个类似XML、JSON的标记性语言。它强调以数据作为中心,并不是以标识语言为重点(即不像XML那种标签嵌套层级关系那么复杂)。因而YAML本身的定义比较简单。号称“一种人性化的数据格式语言”? 对比如下

使用YAML的温馨提示:

1、写yaml要记住,后面要加一个空格!!!!!

2、如果需要将多个yaml配置写在一个文件中,中间要使用---分割如图:

3、yaml转json网址:https://www.json2yaml.com/convert-yaml-to-json

XML:
<student>
    <age>18</age>
    <name>Jack</name>
</student>

?YAML:

student:
    age: 18
    name: jack

YAML的语法比较简单,主要有下面几个:

1、大小写敏感

2、使用缩进表示层级关系

3、缩进不允许使用tab,只允许空格

4、‘#’号表示注释

YAML支持一下几种数据类型:

  • 纯量:单个的、不可再分的值
  • 对象:键值对的集合,又称为映射(mapping)/哈希(hash)/字典(dictionary)
  • 数组:一组按次序排列的值,又叫序列(sequence)或者列表(list)

#纯量YAML写法

就是指的一个简单的值如:字符串,布尔,整数,浮点,Null,时间,日期

#1.布尔类型
c1: true(或者True)

#2.整形
c2: 234

#3.浮点型
c3: 3.14

#4.null类型
c4: ~   #使用~表示null

#5.日期类型
c5: 2018-02-17  #日期必须使用ISO 8601格式,即yyyy-MM-dd

#6.时间类型
c6: 2018-02-17T15:02:31+08:00  #时间使用ISO 8601。时间和日期之间使用T连接,最后+代表时区

#7.字符串类型
c7: yoyoyo  #简单写法,直接写值,如果字符串中间有特殊字符,必须使用双引号或者引号包裹 

c8: forexsmple1
    forexsmple2  #字符串过多的情况可以拆成多行,每回车一行,转成JSON时就会多一个空格(不转也会。就是多一个空格) 

#对象YAML写法

#形式一(推荐):  这是一个学生对象
student:
    age: 15
    name: jakcer


#形式二(了解):  这也是一个学生对象。
student: {age: 15,name: jacker}

#数组YAML写法

#形式一(推荐)
address:
   - 广州
   - 上海
   - 北京


#形式二(了解)
address: [广州,上海,北京]

?----------------------------------------------------------

资源管理方式介绍

  • 命令式对象管理:直接使用命令去操作kubernetes资源
#kubectl = k8s运行命令的工具
#run nginx-pod  =跑一个nginx的pod
#--  入参images名称是nginx:1.17.1  --port=暴露跑的端口是80

kubectl run nginx-pod? --images=nginx:1.17.1? --port=80
  • 命令式对象配置:通过命令配置和配置文件去操作K8S资源

#create/patch == 我要操作什么,(例如创建/更新我的pod)
#nginx-pod.yaml(我的--参数或配置都写在yaml里去了)

kubectl create/patch -f nginx-pod.yaml
  • 声明式对象配置:通过apply命令和配置文件去操作kubernetes资源
#这个目录下的yaml文件,直接执行。 apply= 有这个pod就更新,没有就创建。
kubectl apply -f nginx-pod.yaml
类型操作对象使用环境优点缺点
命令式对象管理对象测试简单只能操作对象,无法审计和跟踪
命令式对象配置文件开发可以审计、跟踪项目大时,配置文件多,操作重复麻烦
生命是对象配置目录开发支持目录操作意外情况下难以调试

命令式对象管理

? ? ? ? kubectl命令

? ? ? ? kubectl是K8S集群命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。kubectl命令语法如下:

kubectl [command] [type] [name] [flags]

comand: 指定要对资源执行的操作,例如create,get,delete

type:指定资源类型,比如deployment、pod、service

name:指定资源的名称,名称大小写敏感

flags:指定额外的可选参数

# 查看所有pod

kubectl get pod


#查看某个pod

kubectl get pod pod_name

#查看某个pod,以yaml格式展示结果

kubectl get pod pod_name -o yaml

资源类型与命令

K8S中所有的内容都抽象为资源,可以通过下面的命令进行查看

#查看K8S中有什么资源
kubectl api-resources

经常使用的资源有下面这些:

命令分类命令翻译作用
? 基本命令create创建创建一个资源
edit编辑编辑一个资源
get获取获取资源
patch更新更新资源
delete删除删除资源
explain解析展示资源文档
运行和调试run运行在集群中云效指定镜像
expose?暴露暴露资源为Service
describe描述描述资源内部信息
logs日志输出容器在pod中的日志
attach缠绕进入运行中的容器
exec执行执行容器中的一个命令(进入)
cp复制在pod内外复制文件
rollout首次展示管理资源的发布
scale规模扩(缩)容Pod的数量
autoscale自动调整自动调整pod的数量
高级命令applyrc对文件资源进行配置
label标签更新资源上的标签
其他命令cluster-info集群信息? ? ? ? ? ? 显示集群信息? ? ? ? ? ? ? ? ? ? ? ? ? ??
version版本显示当前server和client的版本

? ? ? ?演示练习:下面以namsepace/? pod的创建和删除简单演示命令的使用

#创建一个namespace
#dev = namespace的名字
[root@master ~]# kubectl create namespace dev

#获取namespace
ns = namespace的缩写
[root@master ~]# kubectl get ns

#在此namespace下创建并运行一个nginx的pod
[root@master ~]# kubectl run pod --image=nginx -n dev

#查看创建的pod 指定namespace叫dev
[root@master ~]# kubetl get pod -n dev

NAME                READY        STATUS        RESTARTS        AGE
pod-864f987ba9182   1/1          Runing           0            21s

#删除指定的pod
[root@master ~]# kubectl delete pod pod-864f987ba9182

#删除指定的namespace
[root@master ~]# kubectl delete ns dev

#再查看就发现没有了
[root@master ~]# kubectl get ns
[root@master ~]# kubectl get pods -n dev

命令式对象配置

命令式对象配置就是使用命令配合配置文件一起来操作K8S资源。

1)创建一个nginxpod.yml

apiVersion: v1
kind: Namespace
metadata:
   name: dev

---

apiVersion: v1
kind: Pod
metadata:
   name: nginxpod
   namespace: dev
spec:
   containers:
   - name: nginx-containers
     image: nginx:1.17.1

2) 执行create命令,创建资源:

[root@master ~]# kubectl create -f nginxpod.yaml
namescpace/dev create
pod/nginxpod create

此时发现创建了两个资源对象,分别是namespace和pod

3) 执行get命令,查看资源

[root@master ~]# kubectl get -f nginxpod.yml
NAME             STATUS    AGE
namespace/dev    Active    18S

NAME             READY    STATUS    RESTARTS    AGE
pod/neginxpod    1/1     Running        0        17s

4)执行delete命令,删除资源

[root@master ~]# kubectl delete -f nginxpod.yaml
namespace 'dev' delete
pod  'nginxpod' delete

总结: 命令式对象配置的方式操作支援,可以简单认为:命令 + yaml配置文件

声明式对象配置

声明式对象配置跟命令式对象配置很相似,但是它只有一个命令apply

#首先执行一次kubectl apply -f yaml文件,发现创建了资源
[root@master ~]# kubectl apply -f nginxpod.yaml

#再次执行一次kubectl apply -f yum文件,发现资源没有变动
[root@master ~]# kubectl apply -f nginxpod.yaml

总结:

? ? ? ? 其实生命是对象配置管理就是用apply描述一个资源最终的状态(在yaml定义状态)

? ? ? ?使用apply操作资源:

? ? ? ? 如果资源不存在,就创建,相当于kubectl create, 否在就更新相当于kubectl patch

关于node节点

上面都是在master节点上运行的,,那kubectl可以在node节点上运行吗?

kubectl的运行是需要进行配置的,它的配置文件是$HOME/.kube,如果想要在node节点运行此命令,需要将master上的.kube文件复制到node节点上,即在master节点上执行下面操作:

scp -r ~/.kube    node1:~/

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:48:00  更:2021-09-02 11:50:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:48:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码