kubernetes 资源管理介绍

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

kubernetes 的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署,就是在k8s集群中运行一个个的容器,将执行的程序运行在容器中

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

Dod可以提供服务,就要考虑如何访河pod中的服务,kubernetes提供了service和ingress这两种资源来时间这个功能当 pod 数据需要持久化,k8s 也提供了很多种存储系统

Kubernetes 集群管理(二)_nginx

Yaml 语言介绍

kubernetes中资源配置文件都是基于 YAML 语言编写,JSON 相对使用较少因为该文件无法注释

Yaml 资料:​​Yaml 的语法简述_三虎的技术博客_51CTO博客​

Yaml 转换 Json 工具: http://json2yaml.com/convert-yaml-to-json

k8s 资源管理方式

命令式对象管理: 直接使用命令对资源进行操作

kubectl run nginx-pod --image=nginx --port=80

命令式对象配置: 通过命令指定配置文件去操作资源

kubectl create -f nginx-pod.yaml

声明式对象配置: 通过 apply 命令和配置文件去操作资源,相当于更新

kubectl apply -f nginx-pod.yaml

类型

操作对象

适用环境

优点

缺点

命令式对象管理

一个资源

测试

简单

只能操作活动对象,无法审计,跟踪

命令式对象配置

一个文件

生产

审计,跟踪

项目大时,配置文件太多,操作复杂

声明式对象配置

整个目录

生产

支持目录操作

意外情况下难以调试

kubectl 命令参数

使用kubectl命令可以对集群的各种资源对象进行管理

kubectl命令语法:

kubectl [command] itype] [name] [flags]

command:要对资源进行什么操作,如create、delete、get

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

name:指定资源的名称**flags:*指定额外的可选参数

kubectl 常见命令

# 查看所有 pod 资源
kubectl get pod
# 查看 pod 的 yaml 文件
kubectl get pod podname -o yaml
# 查看 pod 的 json 文件
kubectl get pod podname -o json
# 查看 pod 详细信息
kubectl get pod podname -o wide
查看所有的资源类型
kubectl api-resources

kubectl 基本命令参数

命令

含有

create

创建一个资源

edit 

编辑一个资源

get

查看一个资源信息

patch

更新一个资源

delete 

删除一个资源

explain

展示资源文档

kubectl 运行和调试相关命令参数

命令

含义

run

运行一个指定的镜像

expose

暴露资源为 service

describe

查看资源的详细输出

logs 

查看容器在 pod 中的日志

attach

进入运行的容器

exec

进入容器

cp

在 pod 内外复制文件

rollout

管理资源的发布

scale

扩容或缩容 pod 的数量

autoscale

自动跳转 pod 的数量

kubectl 高级命令参数

命令

含义

apply

更新资源配置

label

更新资源上的标签

kubectl 其他命令

命令

含义

cluster-info

显示集群信息

version

显示集群版本

集群管理

资源名称

缩写

资源作用

node

no

集群组成部分

namespace

ns

隔离 pod

Pod 管理

资源名称

缩写

资源作用

replicationcontrollers

rc

控制 Pod 资源

replicasets

rs

控制 Pod 资源

deployment

deploy

控制 Pod 资源

daemonsets

ds

控制 Pod 资源

jobs

控制 Pod 资源

cronjobs

cj

控制 Pod 资源

horizontalpodautoscalers

hpa

控制 Pod 资源

statefulsets

sts

控制 Pod 资源

服务发现

资源名称

缩写

资源作用

services

svc

统一 pod 对外接口

ingress

ing

统一 pod 对外接口

存储管理

资源名称

缩写

资源作用

volumeattachments

存储

persistentvolumes

pv

存储

persistentvolumeclaims

pvc

存储

资源配置

资源名称

缩写

资源作用

configmaps

cm

配置

secrets

配置

总结

Kubernetes 集群管理(二)_资源管理_02

Kubernetes 集群管理(二)_资源管理_03