RKE 安装 rancher HA server 一般要有4台机器, 一台是lvs、nginx代理机器,3台为K8S机器,做etc、rancher server。
版本:
- docker: 19.03.5
- rancher server: 2.4.5
- kubrctl: 1.18.5
- rke: 1.0.10
- helm:2.16.6
RKE 安装 rancher HA server 一般要有4台机器, 一台是lvs、nginx代理机器,3台为K8S机器,做etc、rancher server。
版本:
docker 容器在封装的时候一般只会安装程序需要的软件包。一些工具类的软件包不会安装的,这样容器会很大。也不常用,无意义。
但是这样如果容器有问题,或想查看一些信息,如网络信息、文件内容、抓包等。这样就没办法做到了。
下面说一种方法,容器共享进程、网络资源,可以用用 –pid、–ipc、–net 等参数
这样就可以查看容器的进程信息、网络、文件等事情了。
首先,运行一个容器:
1 | docker run -d -p 7080:80 nginx:latest |
运行一个nginx容器,
直接用 docker exec 进到容器里的时候, 是不能用iptables、ps、vim等命令的。
当容器启动的时候添加了 “–restart=always” 参数,那样容器有问题会一直重启, docker服务重启之后,这个容器也会自动起来。
这样的启动方式适合与一些监控程序,跟着机器一起启动,出问题也会自动重启。
例如:
1 | docker run -d --restart=always nginx:latest |
nginx通过防护墙、F5设备过来之后,remote_addr 的地址是防护墙、F5的地址, 客户端真是的IP地址是在 x_forwarded_for中的, 这样这样 nginx 默认的 deny 和 allow 就不能用了。
我们需要在每个域名中判断一个 x_forwarded_for 钟是否有我们要拒绝的IP地址,如果有就返回403,不在往后代理。
我们定义一个map 拒绝的IP地址列表。
marathon-lb代理https域名, 需要将证书当道lb上。nginx不需要开启443端口,nginx需要配置 vhost 才能访问。
marathon添加证书连接: marathon-lb上添加多个证书
域名都是通过 vhost 虚拟主机方式访问。这样nginx才能拿到 x_forwarded_for 客户端的IP地址。LB才会通过HTTP方式代理,否则会走TCP代理。
nginx上回有很多个域名,我们不能添加一个域名就修改一次 vhosts ,所以我们尝试添加 泛域名。
marathon-lb代理https域名, 需要将证书当道lb上。nginx不需要开启443端口,nginx需要配置 vhost 才能访问。
vhost 需要再nginx发布的时候通过标签形式发布的,但是一个nginx上可能多个域名,不是很灵活,(当你的服务全部都在mesos集群中的话,不用nginx,直接用LB+服务 方式,就可以在每个服务发布的时候声明vhosts。),之后我们研究了nginx发布的时候发布泛域名来解决这个问题。连接 : nginx实现marathon-lb的vhosts泛域名代理
marathon-lb 和 nginx 域名都是通过 vhost 虚拟主机方式访问。这样nginx才能拿到 x_forwarded_for 客户端的IP地址。LB才会通过HTTP方式代理,否则会走TCP代理。
marahton-lb 可以加载多个证书,–ssl-certs 用“,”逗号隔开证书路径