k8s常用操作

一、缩写及名词介绍:

这里简单介绍一下k8s操作中常用的一些资源类型和作用。

pod > po

Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一 个进程。

node > no

node是kubernetes集群中的工作负载节点,每个node都会被master分配一些工作负载(docker容器),当某个node节点宕机,其上面的工作负载会被master自动转移到其他的节点上。
每个node上都运行着以下关键进程:

  1. kubelet
    kubelet负责pod对应的容器的创建,启停等任务,同时与master密切协作,实现集群管理的基本功能。
  2. kube-proxy
    kube-proxy 实现kubernetes,service的通讯与负载均衡机制的重要组件
  3. docker engine
    docker 引擎,负责本机的容器创建和管理

service > svc

service是一种可以访问 pod逻辑分组的策略, service通常是通过 label selector访问 pod组

deployment > deploy

deploy有以下几个作用:

  1. 定义一组Pod期望数量,Controller会维持Pod数量与期望数量一致
  2. 配置Pod的发布方式,controller会按照给定的策略更新Pod,保证更新过程中不可用Pod维持在限定数量范围内
  3. 如果发布有问题支持回滚

replicaset > rs

rs可以保证在任意时间运行Pod的副本数量,能够保证Pod总是可用的

namespace > ns

Namespace命名空间,是kubernetes系统中的另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离,不同的业务可以使用不同的namespace进行隔离

configmap > cm

configmap用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。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}
在这里插入图片描述

2. 查看指定命名空间下的pod

kubectl get po -n {namespace} -owide | grep {podName}
在这里插入图片描述

3. 查看pod详情

kubectl describe po -n {namespace} {podName}
在这里插入图片描述

4. 查看deploy、svc、node等其他资源,命令和上面的一样

例:kubectl get deploy -A -owide | grep {deployName}

5. 修改资源

例:kubectl edit deploy -n {namespace} {deployName}
可以修改容器的镜像地址,修改pod数量等等,改完后wq保存即可

6. 将本地文件拷贝进pod的指定容器中

例:将本地一个/root/test.txt拷贝进pod的nginx容器/home目录下
kubectl cp /root/test.txt -n {namespace}:/home {podName} -c nginx

7. 将容器中的文件拷贝到本地

例:将pod的nginx容器/home/test.txt拷贝到本地/root目录下,起名test.txt
kubectl cp -n {namespace} {podName}:/home/test.txt -c nginx /root/test.txt

8. 查看pod启动时某个容器的日志

kubectl logs -f -n {namespace} {podName} -c {containerName}

9. 重拉pod

kubectl 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常用命令

1. 查看当前节点容器,-a是查看所有, 包括已停止的

docker ps -a | grep {dockerName}

2. 查看当前节点的镜像

docker images | grep {imageName}

3. 将节点上的镜像保存到本地磁盘

docker save {imageid} >{本地路径+保存名}
在这里插入图片描述

4. 进入指定容器

docker exec -ti {containerName} bash

5. 停止容器

docker stop {containerName}

6. 运行一个镜像(不创建容器)

docker run -ti {imageName} bash

7. 加载镜像

docker load -i {imageName}

8. 镜像打tag

docker tag {imageName} {仓库地址+镜像名}:{版本号}

9. 推送镜像

docker push {仓库地址+镜像名}:{版本号}

10. 拉取镜像

docker pull {仓库地址+镜像名}:{版本号}

11. 删除镜像

docker rmi {imageName}

12. 删除已停止的容器

dokcer rm {containerName}

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐