这里简单介绍一下k8s操作中常用的一些资源类型和作用。
pod > poPod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一 个进程。
node > nonode是kubernetes集群中的工作负载节点,每个node都会被master分配一些工作负载(docker容器),当某个node节点宕机,其上面的工作负载会被master自动转移到其他的节点上。
每个node上都运行着以下关键进程:
- kubelet
kubelet负责pod对应的容器的创建,启停等任务,同时与master密切协作,实现集群管理的基本功能。 - kube-proxy
kube-proxy 实现kubernetes,service的通讯与负载均衡机制的重要组件 - docker engine
docker 引擎,负责本机的容器创建和管理
service是一种可以访问 pod逻辑分组的策略, service通常是通过 label selector访问 pod组
deployment > deploydeploy有以下几个作用:
- 定义一组Pod期望数量,Controller会维持Pod数量与期望数量一致
- 配置Pod的发布方式,controller会按照给定的策略更新Pod,保证更新过程中不可用Pod维持在限定数量范围内
- 如果发布有问题支持回滚
rs可以保证在任意时间运行Pod的副本数量,能够保证Pod总是可用的
namespace > nsNamespace命名空间,是kubernetes系统中的另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离,不同的业务可以使用不同的namespace进行隔离
configmap > cmconfigmap用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。configmap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改
job负责批量处理短暂的一次性任务,仅执行一次,并保证处理的一个或者多个Pod成功结束
cronjob负责定时任务,在指定的时间周期运行指定的任务
二、常用操作 1. 查看当前集群下的pod-A和–all-namespaces的意思是查看所有命名空间,-owide展示详细信息
kubectl get po -A -owide | grep {podName}
或kubectl get po --all-namespaces -owide | grep {podName}
kubectl get po -n {namespace} -owide | grep {podName}
kubectl describe po -n {namespace} {podName}
例:kubectl get deploy -A -owide | grep {deployName}
5. 修改资源例:kubectl edit deploy -n {namespace} {deployName}
可以修改容器的镜像地址,修改pod数量等等,改完后wq保存即可
例:将本地一个/root/test.txt拷贝进pod的nginx容器/home目录下
kubectl cp /root/test.txt -n {namespace}:/home {podName} -c nginx
例:将pod的nginx容器/home/test.txt拷贝到本地/root目录下,起名test.txt
kubectl cp -n {namespace} {podName}:/home/test.txt -c nginx /root/test.txt
kubectl logs -f -n {namespace} {podName} -c {containerName}
9. 重拉podkubectl delete po -n {namespace} {podName}
10. 进入pod指定容器kubectl exec -ti -n {namespace} {podName} -c {containerName} bash
11. 节点打标签kubectl label nodes label1=value1
12. 取消和修改节点标签取消:kubectl label nodes label1-
修改:kubectl label nodes label1=value2 --overwrite
docker ps -a | grep {dockerName}
2. 查看当前节点的镜像docker images | grep {imageName}
3. 将节点上的镜像保存到本地磁盘docker save {imageid} >{本地路径+保存名}
docker exec -ti {containerName} bash
5. 停止容器docker stop {containerName}
6. 运行一个镜像(不创建容器)docker run -ti {imageName} bash
7. 加载镜像docker load -i {imageName}
8. 镜像打tagdocker tag {imageName} {仓库地址+镜像名}:{版本号}
9. 推送镜像docker push {仓库地址+镜像名}:{版本号}
10. 拉取镜像docker pull {仓库地址+镜像名}:{版本号}
11. 删除镜像docker rmi {imageName}
12. 删除已停止的容器dokcer rm {containerName}



