1. kubectl
1.1 概述
是k8s集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署;
1.2 kubectl命令语法
kubectl [command] [TYPE] [NAME] [flags]
- command: 指定要对资源执行的操作。例如:create、get、describe 和 delete
- TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的形式。例如:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
- NAME: 指定资源的名称,名称也是大小写敏感的。如果省略名称,则会显示所有资源,例如:
kubectl get pods
- flags: 指定可选的参数。例如:-s或-server参数指定kubernates API server的地址和端口。
1.3 kubectl命令举例
【todo 待拓展】
2. 核心技术-Pod
2.1 概述
-
Pod是k8s系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在k8s上运行容器化应用的资源对象,其他的资源对象都是用来支撑或扩展Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储功能等等,k8s不会直接处理容器,而是Pod,Pod是由一个或多个container组成的。
-
Pod是k8s最重要的概念,每一个Pod都有一个特殊的被称为"根容器"的Pause容器。pause容器对应的镜像属于k8s平台的一部分,除了pause容器,每个pod还包含一个或多个紧密相关的业务容器。
2.2 Pod特性
-
资源共享
一个pod中的多个容器可以共享存储和网络,可以看作一个逻辑的主机
一个pod中的多个容器可以共享存储卷,这个存储卷会被定义为Pod的一部分,并且可以挂载到改pod里的所有容器的文件系统上 -
生命周期短暂
当pod所在节点发生故障,那么改节点上的pod会被调度到其他节点,需要注意的是,被重新调度的pod是一个全新的pod,跟之前的Pod没有关系。 -
平坦的网络
K8s集群中,所有的pod都在同一个共享网络地址空间中,也就是说每个pod都可以通过其他pod的IP地址来实现访问