物联网学习日记8

1.K8S中的Label
解析:使用Label可以给对象创建多组标签,Label和Label Selector共同构成了K8S系统中最核心的应用模型,使得被管理对象能够被精细地分组管理,同时实现了整个集群的高可用性。

2.RC[Replication Controller]
解析:RC是K8S系统中的核心概念之一,它其实是定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,所以RC的定义包括几个部分:
[1]Pod期待的副本数[replicas]
[2]用于筛选目标Pod的Label Selector
[3]当Pod的副本数量小于预期数量时,用于创建新Pod的Pod模板[template]

3.RC[Replica Set]特性和作用
解析:
[1]在大多数情况下,通过定义一个RC实现Pod的创建过程及副本数量的自动控制。
[2]RC中包括完整的Pod定义模板。
[3]RC通过Label Selector机制实现对Pod副本的自动控制。
[4]通过改变RC中的Pod副本数量,可以实现Pod的扩容或缩容功能。
[5]通过改变RC中Pod模板中的镜像版本,可以实现Pod的滚动升级功能。

4.K8S查看名字空间
解析:kubectl get namespaces

5.Namespace[命名空间]
解析:Namespace是K8S系统中的另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离。Namespace通过将集群内部的资源对象分配到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。

6.Annotation
解析:用Annotation来记录的信息如下所示:
[1]build信息、release信息、Docker镜像信息等,比如时间戳、release id号、PR号、镜像hash值、docker register地址等。
[2]日志库、监控库、分析库等资源库的地址信息。
[3]程序调试工具信息,比如工具名称、版本号等。
[4]团队的联系信息,比如电话号码、负责人名称、网址等。

7.etcd
解析:etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值[key-value]数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。

8.CentOS关闭防火墙
解析:

systemctl disable firewalld
systemctl stop firewalld

9.禁用SELinux
解析:禁用SELinux让容器可以读取主机文件系统[setenforce 0]。或修改系统文件/etc/sysconfig/selinux,将SELINUX=enforcing修改成SELINUX=disabled,然后重启Linux。

10.静态Pod
解析:静态Pod是由kubelet进行管理的仅存在于特定Node上的Pod。它们不能通过API Server进行管理,无法与ReplicationController、Deployment或者DaemonSet进行关联,并且kubelet也无法对它们进行健康检查。静态Pod总是由kubelet进行创建的,并且总是在kubelet所在Node上运行的。创建静态Pod有两种方式:配置文件方式和HTTP方式。

11.Controller Manager
解析:Controller Manager作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点[Endpoint]、命名空间[Namespace]、服务账号[ServiceAccount]、资源定额[ResourceQuota]等的管理,当某个Node意外宕机时,Controller Manager会及时发现此故障并执行自动化修复流程,确保集群始终处于预期的工作状态。

12.K8S Scheduler
解析:K8S Scheduler的作用是将待调度的Pod[API新创建的Pod、Controller Manager为补足副本而创建的Pod等]按照特定的调度算法和调度策略绑定[Binding]到集群中的某个合适的Node上,并将绑定信息写入etcd中。在整个调度过程中设计三个对象,分别是:带调度Pod列表、可用Node列表,以及调度算法和策略。简单来说,就是通过调度算法调度为待调度Pod列表的每个Pod从Node列表中选择一个最合适的Node。

13.K8S高可用性
解析:
[1]etcd数据存储的高可用性
[2]K8S Master组件的高可用性

14.K8S Dashboard
解析:K8S的Web UI网页管理工具kubernetes-dashboard,可提供部署应用、资源对象管理、容器日志查询、系统监控等常用的集群管理功能。

15.Helm
解析:Helm是一个由CNCF孵化和管理的项目,用于对需要在K8S上部署的复杂应用进行定义、安装和更新。Helm以Chart的方式对应用软件进行描述,可以方便地创建、版本化、共享和发布复杂的应用软件。

16.docker [image] inspect命令
解析:使用该命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等。

17.docker history ubuntu: 18. 04
解析:使用history命令查看镜像文件各层的创建信息。
说明:通常并不推荐使用-f参数来强制删除一个存在容器依赖的镜像,正确的做法是先删除依赖该镜像的所有容器,再来删除镜像。

18.docker image prune
解析:使用该命令来清理镜像:
[1]-a:删除所有无用镜像,不光是临时镜像。
[2]-filter:只清理符合给定过滤器的镜像。
[3]-f:强制删除镜像,而不进行提示确认。

19.创建镜像
解析:创建镜像的方法主要有三种:基于已有镜像的容器创建,基于本地模板导入,基于Dockfile创建。

20.基于已有容器创建
解析:该方法主要是使用docker [container] commit命令。主要选项包括:
[1]-a:作者信息。
[2]-c:提交的时候执行Dockerfile指令。
[3]-m:提交消息。
[4]-p:提交时暂停容器运行。

21.OpenVZ
解析:OpenVZ是开源软件,是基于Linux平台的操作系统级服务器虚拟化解决方案。OpenVZ采用SWsoft的Virtuozzo虚拟化服务器软件产品的内核,Virutozzo是SWsoft公司提供的商业虚拟化解决方案。

22.基于本地模板导入
解析:可以直接从一个操作系统模板文件导入一个镜像,主要使用docker [container] import命令。

23.基于Dockerfile创建
解析:基于Dockerfile创建时最常见的方式。Dockerfile是一个文本文件,利用给定的指令描述基于父镜像创建新镜像的过程。

24.Docker生产环境
解析:在生产环境中,为了提高容器的高可用性和安全性,一方面要合理使用资源限制参数来管理容器的资源消耗;另一方面要指定合适的容器重启策略,来自动重启退出的容器。此外,还可以使用HAProxy等辅助工具来处理负载均衡,自动切换故障的应用容器。

25.容器中的数据管理
解析:容器中的数据管理主要有两种方式:
[1]数据卷:容器内数据直接映射到本地主机环境。
[2]数据卷容器:使用特定容器维护数据卷。

参考文献:
[1]精通Docker第三版:https://alanhou.org/docker-compose/
[2]istio技术:https://www.qikqiak.com/istio-book/

发布了400 篇原创文章 · 获赞 423 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/104600493