《python运维和开发实战-高级篇》视频课程笔记二

1、 docker load 命令,可导入镜像文件 *.tar ,该文件一般由 docker save 命令进行镜像导出的。 -i : 指定导出的文件。

2、介绍:Keepalived是Linux下一个轻量级别的高可用解决方案。中文名称:存活检测机制。起初针对LVS( LVS Linux Virtual Server 的简写,意即 Linux虚拟服务器 ,是一个虚拟的服务器集群系统)进行研发,专门用来监控集群系统中各个服务节点的状态。如果负载调度器出现故障,keepalive检测到以后将故障点直接从集群中剔除。

    作用:支持故障自动切换、支持节点健康状态检查

    原理:心跳检测

3、通常情况下,利用Keepalived做整个集群的高可用组件,其中一台设置为master,一台设置为backup。当master出现异常后,backup自动切换为master。然而当master恢复正常后会再次抢占成为master,最终导致不必要的主备切换。因此可以将两台keepalived初始状态均配置为backup,设置不同的优先级,优先级高的设置为nopreempt来解决异常恢复后再次抢占的问题。双方在发送组播信息后,会根据优先级来选举一个MASTER出来。由于两者都配置了nopreempt(开启非抢占模式),所以MASTER从故障中恢复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。

4、YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲,YAML 的配置文件后缀为 .yml,如:runoob.yml 。对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。

也可以使用 key:{key1: value1, key2: value2, ...}。

5、在Kubernetes集群中,Pod是所有业务类型的基础,它是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及如何运行的规范。在Pod中,所有容器都被同一安排和调度,并运行在共享的上下文中。对于具体应用而言,Pod是它们的逻辑主机,Pod包含业务相关的多个应用容器。Kubernetes不只是支持Docker容器,它也支持其他容器。 pod是K8s最小的运行,部署单位。用K8s作容器管理,比如Mysql,Redis等服务运行需要创建Pod,才能对外提供服务。

6、 适用场景:k8s环境中的pod之间需要隔离。

    Calico 是一种容器之间互通的网络方案。在虚拟化平台中,比如 OpenStack、Docker 等都需要实现 workloads 之间互连,但同时也需要对容器做隔离控制,就像在 Internet 中的服务仅开放80端口、公有云的多租户一样,提供隔离和管控机制。而在多数的虚拟化平台实现中,通常都使用二层隔离技术来实现容器的网络,这些二层的技术有一些弊端,比如需要依赖 VLAN、bridge 和隧道等技术,其中 bridge 带来了复杂性,vlan 隔离和 tunnel 隧道则消耗更多的资源并对物理环境有要求,随着网络规模的增大,整体会变得越加复杂。我们尝试把 Host 当作 Internet 中的路由器,同样使用 BGP 同步路由,并使用 iptables 来做安全访问策略,最终设计出了 Calico 方案。

设计思想:Calico 不使用隧道或 NAT 来实现转发,而是巧妙的把所有二三层流量转换成三层流量,并通过 host 上路由配置完成跨 Host 转发。

7、k8s是通过各种controller来管理pod的生命周期。为了满足不同业务场景,k8s开发了Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等多种 Controller。Deployment为Pod和Replica Set提供声明式更新。只需要在 Deployment 中描述您想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和ReplicaSet 的实际状态改变到您的目标状态。您可以定义一个全新的 Deployment 来创建 ReplicaSet 或者删除已有的 Deployment 并创建一个新的来替换。 定义一组Pod期望数量,Controller会维持Pod数量与期望数量一致。

8、


请使用浏览器的分享功能分享到微信等