kubernetes基本概念及操作命令

举报
坂田陈浩南 发表于 2020/05/08 15:40:17 2020/05/08
【摘要】 一、几个概念:kubernetes/pod/docker/container1.K8S,就是基于容器的集群管理平台,它的全称,是kubernetes2.Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。3.pod是k8s中的最小部署单元,不是一个程序/进程,而是一个环境4.一个pod可以运行1个或多个containerkubernetes中的DaemonSet等概念Daemon...

一、几个概念:

kubernetes/pod/docker/container

1.K8S,就是基于容器的集群管理平台,它的全称,是kubernetes

2.Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

3.pod是k8s中的最小部署单元,不是一个程序/进程,而是一个环境

4.一个pod可以运行1个或多个container

kubernetes中的DaemonSet等概念

DaemonSet DaemonSet  确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 Volume Volume是Kubernetes Pod中多个容器访问的共享目录。 hostPath hostPath 卷能将主机节点文件系统上的文件或目录挂载到您的 Pod 中 emptyDir emptyDir类型的Volume在Pod分配到Node上时被创建,Kubernetes会在Node上自动分配一个目录,因此无需指定宿主机Node上对应的目录文件。 这个目录的初始内容为空,当Pod从Node上移除时,emptyDir中的数据会被永久删除。

Pod状态

Pod 的 status 定义在 PodStatus 对象中,其中有一个 phase 字段。

Pod 的运行阶段(phase)是 Pod 在其生命周期中的简单宏观概述。该阶段并不是对容器或 Pod 的综合汇总,也不是为了做为综合状态机。

Pod 相位的数量和含义是严格指定的。除了本文档中列举的内容外,不应该再假定 Pod 有其他的 phase 值。

下面是 phase 可能的值:

  • 挂起(Pending):Pod 已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度 Pod 的时间和通过网络下载镜像的时间,这可能需要花点时间。

  • 运行中(Running):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。

  • 成功(Succeeded):Pod 中的所有容器都被成功终止,并且不会再重启。

  • 失败(Failed):Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。

  • 未知(Unknown):因为某些原因无法取得 Pod 的状态,通常是因为与 Pod 所在主机通信失败。

二、操作命令

分两类:docker 命令和kubectl命令

docker 命令(管理容器,操作集群中单个节点上的资源)

  1. 查看运行中的容器

    docker ps

  2. 进入运行中的容器

    docker exec -it <containerId> /bin/bash

  3. 查看镜像列表

    docker image ls

  4. 删除镜像

    docker image rm <imageId> option[--force]

  5. 运行指定镜像

    docker run -it <imageId> /bin/bash

  6. 停止运行container

    docker container kill <containerId>

  7. 镜像制作

    docker build -t <image-name>:<tag> -f <dockerfile> .  注意最后有一个点

  8. 推送到华为云服务“云容器镜像服务“”

    登录镜像服务器(这个在云容器镜像服务,点击登录指令会自动生成

    docker login -u *** -p *** swr.cn-north-5.myhuaweicloud.com

    给镜像打tag

    sudo docker tag spark:20200110 swr.cn-north-5.myhuaweicloud.com/sparkonk8s/spark:20200110

    推送镜像到服务器

    sudo docker push swr.cn-north-5.myhuaweicloud.com/sparkonk8s/spark:20200110

大概规律就是:docker <资源类型> <操作类型> <实例Id>

kubectl命令(管理集群,操作整个集群中资源)

下列命令在华为云服务“云容器引擎”中操作样例

1.操作pod

查看pod列表:kubectl get pods opiton[--namespace=<namespaceName>]

删除pod:kubectl delete pod <podId>

查看pod日志:kubectl logs <podId>

查看pod详情:kubect describe pod <podId>

查看单个pod:kubect get pod <podId> option[--output=yaml]

指定yaml创建pod:kubectl create -f <template.yaml>

或者 kubectl apply -f <template.yaml>,可以修改模板文件,重新apply来做升级

2.操作damonset

查看daemonset列表:kubectl get daemonsets opiton[--namespace=<namespaceName>]

删除damonset:kubectl delete daemonset <daemonsetId>

指定yaml文件运行damonset:kubectl create -f <template.yaml>

或者 kubectl apply -f <template.yaml>,可以修改模板文件,重新apply来做升级

3.操作节点

查看节点:kubectl get nodes option[--show-labels] option[--output=wide]

给节点打标签:kubectl label nodes <your-node-name> disktype=ssd

优雅的结束节点上的所有 pod 并同时标记节点为不可调度:kubectl drain <nodename>

重新使节点可调度:kubectl uncordon  <your-node-name>

4.serviceaccount

创建serviceaccount:kubectl create serviceaccount <servicecount-name>

查看serviceaccount:kubectl get serviceaccounts

5.角色绑定

创建角色绑定:

kubectl create clusterrolebinding <role-binding-relation-name> --clusterrole=<role-name> --serviceaccount=<namespace-name>:<serviceaccout-name>

删除角色绑定:kubectl delete clusterrolebinding <role-binding-relation-name>

大概规律就是:kubectl  <操作类型> <资源类型> <实例Id>


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。