Kubernetes学习日志(二)

前言

本文记录Kubernetes管理工具,主要针对集群管理和pod的学习记录

一、集群管理

1、集群管理命令

控制Kubernetes集群的命令行工具 : kubectl

语法格式

kubectl [command] [type] [name] [flags]
command : 子命令,eg:create,delete,get,describe等
type : 资源类型,可以表示为单数,复数或缩写形式
name : 资源的名字,省略默认为显示所有资源
flags : 指定可选标志,或附加的参数

子命令
子命令描述
help帮助信息
cluster-info显示集群的相关配置
version查看服务器及客户端的版本信息
api-resources查看当前服务器上所有的资源对象
api-version查看当前服务器上所有资源对象的版本
config管理当前节点上kubeconfig的认证信息
get列出Kubernetes集群中的资源
create通过文件名或标准输入创建资源
update通过文件名或标准输入更新资源
delete通过文件名、标准输入或资源名删除资源
describe查看资源的详细描述信息
set对现有资源进行配置
edit通过默认编辑器编辑资源
label更新资源上的标签
run在集群上运行一个指定的image
exec在容器中执行命令
apply使用配置文件来更新资源
completion为kubectl生成自动补全脚本
output控制输出格式
update更新kubectl到最新版本

资源对象

k8s中把可以创建或配置的应用和服务称为资源对象
eg:Pod、负载均衡、存储、网络服务等
创建资源对象的放式:
简单资源对象可以使用kubectl直接创建
高级资源对象需要资源对象文件创建

eg:使用run创建一个Pod资源对象
语法:
kubectl run Pod名字 [选项/参数] --image=镜像名:标签

二、Pod详解

Pod由一个或多个容器组成,是Kubernetes最小的管理单元,是一个服务的多个进程的聚合单位。
同一个Pod共享网络IP及权限,共享主机名称,共享存储设备。

1、Pod相位状态

Pod的status字段是一个PodStatus的对象,Pod对象应处于以下几个相位之一:
Pending Pod创建过程中但尚未被调度完成
Running Pod中所有容器都已创建成功
Completed Pod所有容器都已成功终止,并不会被重启
Failed Pod所有容器中至少由一个容器退出是非0状态
Unknown 无法正常获取Pod对象状态信息

2、 Pod管理命令

核心管理命令

子命令描述备注
run/create创建资源对象可输出资源文件模板
get查看资源对象状态信息可选参数:-o显示格式
describe查询资源对象属性信息
logs查看容器报错信息可选参数:-c 容器名称
kubectl get语法格式

kubectl get 资源类型 [资源名称] [选项/参数]
常用参数:
-o name 只显示名字
-o wide 显示更加详细的信息
-o yaml 以yaml语法格式显示资源对象
-o json 以json语法格式显示资源对象

系统命名空间

-default 默认命名空间,不声明命名空间的Pod都在这里
-kube-node-lease 为高可用提供心跳监视的命名空间
-kube-public 公共数据,所有用户都可以读取它
-kube-system 系统服务对象所使用的命名空间
ps:k8s系统核心服务都运行在kube-system命名空间中

kubectl create 语法格式

kubectl create <资源对象> [选项/参数]

kubectl run 语法格式

kubectl run pod名称 [选项/参数]

kubectl describe语法格式

kubectl describe 资源类型 [资源名称] [选项/参数]
Events下是事务日志,常用排错

kubectl logs 语法格式

kubectl logs Pod名称 [选项/参数]

常用管理命令

子命令描述备注
exec在某一个容器内执行特定的命令可选参数:-c 容器名称
cp在容器和宿主机之间拷贝文件/目录可选参数:-c 容器名称
delete删除资源对象可选参数:-f 文件名称
kubectl exec在容器内执行命令

kubectl exec [选项/参数] Pod名称 – 操作命令
常用 -it 分配交互式终端

kubectl cp拷贝文件/目录

kubectl cp [选项/参数] 源文件 目标文件
路径格式 [Pod名称:绝对路径]

kubectl delete 语法格式

集群中所有资源均可以使用 delete 命令删除
kubectl delete [选项/参数] 资源类型 资源名称

三、资源文件详解

kubernetes对象是“目标性记录”,使用这些对象去表示整个集群的状态
创建Kubernetes对象时,必须提供资源对象的一些基础信息,以及描述该对象的期望状态特征,如果在文件中用yaml语法格式描述上面的信息,这个文件就是资源对象文件。
使用资源对象文件的原因:
命令无法持久化,没有历史记录,不方便重现
服务众多,多个容器之间有关联性,管理不方便
高级复杂的功能靠简单命令无法实现
资源对象文件作用:
可以创建、删除、变更、管理资源对象

最简单的资源对象文件

eg:
--- # yaml文件起始标志
kind: Pod # 当前创建资源的类型
apiVersion: v1.0 # 当前资源的版本
metadata: # 属性信息,元数据
  name: mynginx # 属性信息,资源的名称
spec: # 资源的特性描述
  containers:  # 容器资源特征描述
  - name: web_server # 容器名称
    image: my_os:nginx # 启动容器时用的镜像
status: {} # 资源状态,运行后自动生成

静态Pod

静态Pod是由kubelet守护进程直接管理的Pod,不需要API服务监管
kubelet监视每个静态Pod,在它崩溃后重新启动
静态Pod永远都会绑定到一个指定节点上的kubelet
静态Pod的spec不能引用其他API对象
静态Pod配置路径:/var/lib/kubelet/config.yaml
staticPodPath:/etc/kubernetes/mainfests

四、管理资源对象

Pod资源对象管理

创建Pod两种方法:
1、使用run子命令创建
2、使用资源文件

子命令说明备注
create创建文件中定义的资源指令式对象配置
apply创建(更新)文件中定义的资源声明式对象配置
delete删除文件中定义的资源可以基于集合删除

语法:
kubectl [create|apply|delete] -f 资源文件名称.yaml

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值