calico 网络模型的简单笔记

calico 简单笔记 calico 是一种基础 vRouter 的3层网络模型 (BGP 网络)。 在应用到 k8s 中,可以提到常见的 flannel。 使用节点主机作为 vRouter 实现 3层转发。 提高网络性能。 calico 的网络模型 calico 可以通过设置 IP-in-IP 控制网络模型: https://docs.projectcalico.org/v3.5/usage/configuration/ip-in-ip ipipMode=Never: BGP 模型。 完全不使用 IP-in-IP 隧道, 这就是常用的 BGP 模型。 ipipMode=Always: calico 节点直接通过 IP 隧道的的方式实现节点互通。 这实际……

阅读全文

k8s nginx ingress 添加 x-forwarded

ingress 配置 for-forward-for The client IP address will be set based on the use of PROXY protocol or from the X-Forwarded-For header value when use-forwarded-headers is enabled. https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-forwarded-headers https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#forwarded-for-header 1 2 3 4 5 6 7 8 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: srv-bff-op-center annotations: nginx.ingress.kubernetes.io/forwarded-for-header: "X-Forwarded-For" kubernetes.io/ingress.class: "nginx"……

阅读全文

dokcer daemon.json

docker daemon.json 配置文件 daemon.json 配置方式 Linux: /etc/docker/daemon.json Windows Server: C:\ProgramData\docker\config\daemon.json Docker for Mac / Docker for Windows: Click the Docker icon in the toolbar, select Preferences, then select Daemon. Click Advanced. daemon.json 配置 镜像加速器 1 2 3 4 5 6 7 8 9 // 配置一个 { "registry-mirrors": ["https://registry.docker-cn.com"] } // 配置多个 { "registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"] } 镜像加速器常用值: docker-cn 官方 : https://registry.docker-cn.com 中科大 : https://docker.mirrors.ustc.edu.cn 日志 1 2 3 4 { "debug": true, "log-level": "info" } log-level 的有效值包括: debug, info, warn, error, fatal 监控 Prometheus https://docs.docker.com/engine/admin/prometheus/#configure-docker 1 2 3 4 { "metrics-addr" : "127.0.0.1:9323", "experimental" : true } 保持容器在线 https://docs.docker.com/engine/admin/live-restore/#enable-the-live-restore-option 当……

阅读全文

关于 nginx uri 的截取

关于 uri 的截取 location 中的 root 和 alias root 指令只是将搜索的根设置为 root 设定的目录,即不会截断 uri,而是使用原始 uri 跳转该目录下查找文件 alias 指令则会截断匹配的 uri,然后使用 alias 设定的路径加上剩余的 uri 作为子路径进行查找 示例 1: root #------------目录结构---------- /www/x1/index.html /www/x2/index.html #--------……

阅读全文

TCP keepalive 探活机制

TCP keepalive 探活机制 Content here 参考资料 tcp keepalive howto tcp 协议 syn 攻击 为什么基于TCP的应用需要心跳包……

阅读全文

使用 Dockerfile 构建镜像注意事项

面试问 Dockerfile 的优化, 千万不要只会说减少层数 在面试的时候, 我通常都会问「如果优化 Dockerfile」? 面试的朋友大部分都会说 使用更小的基础镜像, 比如 alpine. 减少镜像层数, 使用 && 符号将命令链接起来。 好一点的面试者 我会给基础镜像打上 安全补丁。 但这些都没说到点上。 优化 Dockerfile 的核心是 合理分层。 为什么要……

阅读全文

golang-use-regex-group

golang 使用 regex group 的值 与常用的语言正则不同, golang 使用 $1 表示 regex group。 而类似 sed, python 中常用的是 \1 golang playgroud 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`([A-Z])`) s := re.ReplaceAllString("UserCreate", ".$1") fmt.Println(s) // .User.Create } func Test_Regexp(t *testing.T) { chars := `('|")` str := `"123'abc'456"` re := regexp.MustCompile(chars) s := re.ReplaceAllString(str, `\$1`) // 这里可以使用 ` 反引号 fmt.Println(s) // \"123\'abc\'456\" } // https://stackoverflow.com/questions/43586091/how-golang-replace-string-by-regex-group python 1 2 3 import re name = re.sub(r'([A-Z])', r'.\1', "UserCreate") print(name) # .User.Create……

阅读全文

K8S 中使用 Heketi 管理 GlusterFS

K8S 中使用 Heketi 管理 GlusterFS 与 官方文档不同 , 本文中的 glusterfs 是独立与 k8s 之外的。 Heketi heketi 项目 为 GlusterFS 提供 RESTful 的 API 管理。 Requirements System must have glusterd service enabled and glusterfs-server installed Disks registered with Heketi must be in raw format. 目前提供两种管理方式: ssh, kubernetes heketi-ssh SSH Access SSH user and public key already setup on the node SSH user must have password-less sudo Must be able to run sudo commands from ssh. This requires disabling requiretty in the /etc/sudoers file 使用容器部署 https://hub.docker.com/r/heketi/heketi/ heketi-kubernetes 带实现 勘误 在使用 K8S 部署时, 如果客户端报错……

阅读全文

K8S节点下载 gcr.io 原生镜像

K8S下载 gcr.io 原生镜像 在国内是不能直接下载 gcr.io / k8s.gcr.io 等原生镜像的。 使用比较权威的三方源 aliyun , qcloud 将 gcr.io push 到 hub.docker.com 自建镜像代理 域名翻墙 域名翻墙 通过域名劫持,将目标地址直接解析到代理服务器上。 sniproxy 所有你需要的, 一个能直接访问 gcr.ip 的 https(443) 代理。 通过 sniproxy 实现。 通过 防火墙 , 安全组 限制访问来源。 1 2 # docker run -d --rm --network host --name sniproxy……

阅读全文

docker multi-stage build

Docker multi-stage build Multi-stage 构建,最大的好处是 Docker 本身在构建过程中提供了一个缓存空间,将上一个 stage 的结果通过 COPY --from=<stage> 复制到下一个 stage。 这样就大大简化了镜像清理工作。 这里, docker 官方文档已经对 Multi-stage build 已经有详细说明了。 multi-stage 要求 docker version >= 17.05 举例 每一个 FROM 关键字都表示此处是一个 stage 对 stage 使用命令的关键字是 as , 例如 FROM alpine:latest as initer 在引用……

阅读全文

福利派送

  • (免费星球)「运维成长路线」

  • 又拍云免费 CDN

最近文章

分类

标签

其它