k8s学习(三)

资源管理介绍

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

kubernetes资源有Pod、Service、Deployment、存储等。

Pod:kubernetes管理的最小单元,里面可以跑多个容器(container)

Service:对集群外部提供访问端口

Deployment:控制Pod的副本数量、更新和回滚等操作

存储(PV、PVC):Pod程序中的数据持久化

学习kubernetes的核心就是学习如何对集群上的Pod、Service、存储等各种资源进行操作。

这些资源大多以yaml文件为格式,不了解的可以自行了解一下,这里不再介绍了。

资源管理方式

分为下面三种形式(了解即可,多操作下面的不用记)

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

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

  • 命令式对象配置:通过命令和配置文件操作kubernetes资源

kubectl create/patch -f nginxpod.yaml

  • 声明式对象配置:通过apply命令和配置文件操作kubernetes资源

kubectl apply -f nginxpod.yaml

下面分别介绍下三种方式具体使用方法:

命令式对象管理

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

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

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

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

flags:指定额外的可选参数

常见命令:

命令分类命令命令作用
基本命令create创建一个资源
get获取一个资源
delete删除一个资源
运行和调试run在集群中运行一个指定的镜像
expose暴露资源为Service
describe显示资源内部信息
logs输出容器在pod中的日志
exec执行容器中的一个命令
cp在Pod内外复制文件
rollout管理资源的发布
scale扩缩容Pod的数量

#查看所有pod

kubectl get pod

#查看某个pod

kubectl get pod pod_name

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

kubectl get pod pod_name -o yaml

#查看pod的详细信息(这样可以查看pod部署在哪个节点,IP等信息)

kubectl get pod -o wide

资源类型可以通过下面的命令查看:

kubectl api-resources

常见资源类型有;

资源分类资源名称缩写资源作用
集群级别资源nodesno节点
namespacesns隔离pod
pod资源podspo装载容器
pod资源控制器deploymentsdeploy控制pod资源
statefulsetssts控制pod资源
replicasetsrs控制pod资源
服务发现资源servicessvc统一pod对外接口
ingressing统一pod对外接口
存储资源persistentvolumespv存储
persistentvolumeclaimspvc存储
配置资源configmapscm配置
secrets配置

常用命令示例:

kubectl create namespace dev   //创建名为dev的命名空间

kubectl get ns    //获取命名空间

kubectl run nginxpod --image=nginx -n dev  //创建一个nginx的pod,分配到dev空间

kubectl get pod -n dev

kubectl delete pod pod_name -n dev(不指定命名空间,默认是default)

命令式对象配置

可以简单理解为命令+yaml文件(常见命令上面已经介绍过)

创建一个nginxpod.yaml,内容如下
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

创建资源:

kubectl create -f nginxpod.yaml

namespace/dev created
pod/nginxpod created

执行get命令查看资源:

kubectl get -f nginxpod.yaml

删除资源:

kubectl delete -f nginxpod.yaml

声明式对象配置

kubectl apply -f nginxpod.yaml

这种方式只能用来部署服务(部署更新),如果想删除资源,用第二种方式,即命令式对象配置。

其实不管哪种方式,操作多了用自己最熟练的方式就行。

使用推荐:三种方式应该怎么用?
创建/更新 资源使用声明式对象配置 kubectl apply -f xxx.yaml

删除资源 使用命令式对象配置 kubectl delete -f xxx.yaml

查询资源 使用命令式对象管理 kubectl get(describe)资源名称

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值