整理如下内容:
- 数据结构和算法
- 常用库和使用方法示例
- Flask cheetsheet
整理如下内容:
在k8s中, ConfigMap是一种API对象, 用于将非机密的配置数据存储到键值对中。
Configmap作用是, 把配置数据从应用代码中分隔开, 让镜像和配置文件解耦,实现了镜像的可移植性。
举个例子:
我有一个Squid(正向代理)的Pod, 需要获取用户配置的白名单做访问控制。 每个用户设置的白名单都不一样, 而且用户可以随时对白名单做增、删、改,所以这个白名单的配置不能写死在代码里。
我们可以把白名单配置存储到k8s的ConfigMap, 这样配置数据和镜像就实现了解耦,Pod中可以动态地获取白名单的配置。
使用ConfigMap时, Pod可以将其用作环境变量、命令行参数或存储卷中的配置文件。
下面给出一个具体的案例,将ConfigMap用作存储卷中的配置文件,Pod中通过读取配置文件的内容,就获取到了配置信息。
k8s中的Pod由容器组成,容器运行的时候可能因为意外情况挂掉。为了保证服务的稳定性,在容器出现问题后能进行重启,k8s提供了3种探针
为了探测容器状态,k8s提供了两个探针: LivenessProbe和ReadinessProbe
对于启动非常慢的应用, LivenessProbe和ReadinessProbe可能会一直检测失败,这会导致容器不停地重启。 所以k8s设计了第三种探针StartupProbe解决这个问题
在RHEL服务器上, 用openssl命令生成一个自签名证书
1 | openssl genrsa -out server.key 2048 #生成一个2048位的RSA私钥,保存到server.key |
注: CN=www.petertest.com
需要换成你的服务器域名, 否则curl测试会报错
Squid ACL(Access Control List,访问控制列表)提供了代理控制的功能。
通过设置ACL,Squid可以针对源地址、目标地址、访问的URL路径、访问的时间等各种条件进行过滤,从而实现对网络流量的精细控制。
基本的ACL元素语法:
1 | acl name type value1 value2 ... |
可以对一个ACL元素列举多个值,也可以多个ACL行使用同一个名字。例如,以下两种配置方式是等价的
1 | acl safe_ports port 80 443 8080 |
等价于
1 | acl safe_ports port 80 |