1. K8S的基本组件概念介绍 上图描述的是拥有一个Master(主)节点和六个Worker(工作)节点的k8s集群。 K8S中有master主节点,worker节点(也叫node节点),pod容器组概念构成。 Master 负责管理集群 负责协调集群中的所有活动,例如调度应用程序,维护应用程序的状态,扩展和更新应用程序。

Worker节点(即图中的Node)是VM(虚拟机)或物理计算机,充当k8s集群中的工作计算机。 每个Worker节点都有一个Kubelet,它管理该Worker节点并负责与Master节点通信。该Worker节点还应具有用于处理容器操作的工具,例如Docker。

Pod 容器组 是一个k8s中一个抽象的概念,用于存放一组 container(可包含一个或多个 container 容器,即图上正方体),以及这些 container (容器)的一些共享资源。 Pod(容器组)是 k8s 集群上的最基本的单元。当我们在 k8s 上创建 Deployment 时,会在集群上创建包含容器的 Pod (而不是直接创建容器)。每个Pod都与运行它的 worker 节点(Node)绑定,并保持在那里直到终止或被删除。如果节点(Node)发生故障,则会在群集中的其他可用节点(Node)上运行相同的 Pod(从同样的镜像创建 Container,使用同样的配置,IP 地址不同,Pod 名字不同)。

每个 Kubernetes Node(节点)至少运行:

Kubelet,负责 master 节点和 worker 节点之间通信的进程;管理 Pod(容器组)和 Pod(容器组)内运行的 Container(容器)。容器运行环境(如Docker)负责下载镜像、创建和运行容器等。

总结:k8s中master主节点通过worker节点(也叫node节点)管理集群,一个node节点可以包含多个pod容器组。

常用命令 (1)kubectl get - 显示资源列表

#获取类型为Deployment的资源列表

kubectl get deployments

#获取类型为Pod的资源列表

kubectl get pods

#获取类型为Node的资源列表

kubectl get nodes

(2)查看名称空间

# 查看所有名称空间的 Deployment

kubectl get deployments -A

kubectl get deployments --all-namespaces

# 查看 kube-system 名称空间的 Deployment

kubectl get deployments -n kube-system

(3)kubectl describe - 显示有关资源的详细信息

# kubectl describe 资源类型 资源名称

#查看名称为nginx-XXXXXX的Pod的信息

kubectl describe pod nginx-XXXXXX

#查看名称为nginx的Deployment的信息

kubectl describe deployment nginx

(4)kubectl logs - 查看pod中的容器的打印日志(和命令docker logs 类似)

# kubectl logs Pod名称

#查看名称为nginx-pod-XXXXXXX的Pod内的容器打印的日志

#本案例中的 nginx-pod 没有输出日志,所以您看到的结果是空的

kubectl logs -f nginx-pod-XXXXXXX

(5)kubectl exec - 在pod中的容器环境内执行命令(和命令docker exec 类似)

# kubectl exec Pod名称 操作命令

# 在名称为nginx-pod-xxxxxx的Pod中运行bash

kubectl exec -it nginx-pod-xxxxxx /bin/bash

认识yaml配置文件

apiVersion: apps/v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本

kind: Deployment #该配置的类型,我们使用的是 Deployment

metadata: #译名为元数据,即 Deployment 的一些基本属性和信息

name: nginx-deployment #Deployment 的名称

labels: #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解

app: nginx #为该Deployment设置key为app,value为nginx的标签

spec: #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用

replicas: 1 #使用该Deployment创建一个应用程序实例

selector: #标签选择器,与上面的标签共同作用,目前不需要理解

matchLabels: #选择包含标签app:nginx的资源

app: nginx

template: #这是选择或创建的Pod的模板

metadata: #Pod的元数据

labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod

app: nginx

spec: #期望Pod实现的功能(即在pod中部署)

containers: #生成container,与docker中的container是同一种

- name: nginx #container的名称

image: nginx:1.7.9 #使用镜像nginx:1.7.9创建container,该container默认80端口可访问

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。