kubectl 集群管理命令
kubectl [command] [type] [name] [flags]
command 子命令: create,get,describe,delete
type: 资源类型,可以表示单数,复数,缩写形式
name: 资源名称,省略不写,显示所有资源信息
flags: 指定可选标志,或参数管理主机授权
vim /etc/hosts # 为其他主机添加管理权限
dnf -y install kubectl #安装集群管理工具 kubectl
拷贝证书到目标主机
- 证书默认路径: $HOME/.kube/config
资源对象
资源对象是k8s中把可以创建或者配置的应用和服务称为资源对象
集群中创建的Pod ,负载均衡,存储,网络服务都算资源对象
如何创建资源对象
kubectl 直接创建
运用资源对象文件创建
使用run创建一个Pod资源对象
kubectl run Pod名称 [选项/参数] --image=镜像名称:标签
Pod
由多个或者一个容器组成,是k8s中的最小管理元素
是一个服务的多个进程的聚合单位
同一个Pod 共享网络IP及权限,共享主机名,共享存储设备
1,创建容器 ---》 写入数据 ---》 回答好的
2,调度器调度资源 ---》 绑定pod ---》记录数据 ---》master 创建容器 ---》 node 创建结果 ---》master ---》记录数据 ---》 返回结果
为什么使用pod
服务之间有相关性
启动容器的时候需要初始化或进行相关配置
pod的生命周期
Pod对象自从创建开始至终止的时间范围
在这段时间中,pod处在多种不同的状态,并执行相关操作
创建容器为必需的操作,其他为可选操作(初始化容器,启动后钩子,存活性弹测,就绪性探测以及终止前钩子等)
pod生命周期
pod相位状态 status字段
1,Pending(等待中) Pod创建过程中,但是它尚未被调度完成
2,Running(运行中) Pod中所有容器都已经被创建成功
3,Completed Pod所有容器都已经成功终止,并不会被重启
3,Succeeded(已完成):如果Pod中的所有容器成功地执行完任务并退出,Pod将进入已完成的状态。通常见于 Job 任务
4,Failed(失败) Pod中的所有容器中至少有一个容器退出是非0状态
5,Unknown (未知) 无法正常获取到Pod对象的状态信息
6,Terminating(终止中)Pod正在被删除或终止,Kubernetes会尝试停止容器并清理资源
7,ContainerCreating(创建容器中):当Pod的容器正在创建中时,Pod将进入创建容器中的状态。常见在容器镜像下载或初始化容器执行的过程中。
系统中的核心服务都是运行在Pod中
Pod核心管理命令
kubectl get 资源类型 [资源名成] [选项/参数]
-o name 只显示名字
-o wide 显示更加详细信息
-o yaml 以yaml语法格式显示
-o json 以json 语法格式显示
查看命令空间 kubectl get namespace
查看那命令空间中的资源对象 kubectl -n kube-system get pods
系统命名空间 namespace
default 默认的命令空间,不声明命名空间的Pod都在这里
kube-node-lease 为高可用提供心跳监视的命名空间
kube-public 公共数据,所有用户都可以读取它
kube-system 系统服务对象所使用的命令空间
k8s系统核心服务都在运行在kube-system 名称空间
kubectl create <资源对象> [选项/参数]
kubectl create namespace work 创建简单资源对象
kubectl get namespace 查看
kubectl run pod名称 [选项/参数]
kubectl -n work run myhttp --image=myos:httpd 创建简单Pod资源对象
kubectl -n work get pods -o wide 查询资源对象
kubectl describe 资源类型 [资源名称] [选项/参数]
Events 下是事务日志,用来排错
kubectl logs Pod名称 [选项/参数]
排错三命令
kubectl get kubectl desciibe kubectl logs
Pod 管理命令
kubectl exec [选项/参数] Pod名称 -- 操作命令
常用参数 -it 分配交互式终端
kubectl cp [选项/参数] 源文件 目标文件
- 路径格式 [Pod名称:绝对路径]
kubectl delete [选项/参数] 资源类型 资源名称
资源对象
kubernetes对象是 "目标性记录"
k8s 使用这些对象去表示整个集群的状态
kubectl create pod myweb --image myos:nginx --dry-run=client -o yaml
静态Pod是kubelet 守护进程直接管理的Pod ,不需要APi服务器监管,与由控制面管理的Pod不同
kubelet 监视每个静态Pod(在它崩溃之后重新启动)
静态Pod永远都会绑定到一个指定节点上的Kubelet
静态Pod的spec 不能引用其他Api对象
静态Pod配置路径:/var/lib/kubelet/config.yaml
staticPodPath: /etc/kubernetes/manifests #在路径下创建pod
kubectl create -f myweb.yaml 创建文件中定义的资源(重复执行会报错)
kubectl apply -f myweb.yaml 创建(更新)资源对象(可以重复执行)
kubectl delete -f myweb.yaml 删除资源对象
kubectl replace -f myweb.yaml 删除并重启资源对象