[toc]
k8s知识点
k8s命令自动补全
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
1.k8s特性
-
服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果到容器的流量很大,Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
-
存储编排 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。
-
自动部署和回滚 您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 来为您的部署创建新容器,删除现有容器并将它们的所有资源用于新容器。
-
自动二进制打包 Kubernetes 允许您指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源请求 时,Kubernetes 可以做出更好的决策来管理容器的资源。
-
自我修复 Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。
-
密钥与配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。
2.k8s概念和术语
2.1 k8s角色
2.1.1 master
k8s使用**
共享网路
**将多个物理机或者虚拟机汇集到一个集群中,在各服务器之间进行通信,该集群是是配置k8s的所有组件、功能和工作负载的物理平台集群中的一台机器(或者高可用部署中的一组服务器)用作master,负责管理整个集群
2.1.2 node
集群中除master节点外的其余机器用作node,他们是使用本地和外部资源接收和运行工作负载的服务器
集群中的这些机器可以是物理服务器,也可以是虚拟机
2.2 k8s资源
2.2.1 pod
- k8s并不直接运行容器,而是使用一个抽象的资源对象来封装一个或者多个容器,这个抽象即为pod,pod是k8s的最小调度单元
- 同一pod中的容器共享网络名称空间和存储资源,这些容器可经由本地回环接口lo直接通信,但彼此之间又在mount、user及PID等名称空间上保持隔离
pod示意图
2.2.2 label 资源标签
- 标签是将资源进行分类的标识符,资源标签其实就是一个健值型数据
- 标签是用于指定对象(如pod)辨识性的属性,这些属性仅对用户存在特定的意义,对k8s集群来说并不直接表达核心系统语义
- 标签可以在对象创建时附加其上,并能够在创建后的任意时间进行添加和修改
- 一个对象可以拥有多个标签,一个标签也可以附加于多个对象之上