可以通过--kubeconfig 命令行参数来选择操作不同集群
使用默认的 kubeconfig 文件, 需要将多个 kubeconfig 合并,保存在kubeconfig 的默认位置 $HOME/.kube/config , 合并后的参考格式如下:
kubeconfig 中定义了 (clusters)集群、(users)用户和 以及相关联的(contexts)上下文,如果使用Uk8s 可以在控制台: 概览->内网凭证/外网凭证 查看需要的凭证,然后按照上述格式补全即可
方式三:使用ansible Playbook 来管理集群内的容器应用
场景描述: 目前我们需要使用helm安装一个external-dns 用来将 ingess对接的域名解析规则,自动同步到DNS服务器,使用shell命令操作参考如下:
将以上操作转化为 ansible-playbook 的tasks 可以拆分为四个 tasks ,
将上诉文件保存为 deploy_external_dns.yaml, 执行命令 ansible-playbook deploy_external_dns.yaml 命令执行成功回看到返回如下类似结果:
方式四:使用ansible-playbook roles来组织管理集群变更tasks
在方式三中,如果是管理一个集群,编写一个deploy_external_dns.yaml就能完成工作,如果管理多个集群,就要编写多个yaml文件,并且重复编写很多差异不多的tasks 实际操作可能类似这个样子:
经过对比分析,这些tasks 主要差异变量:
只要将以上两个变量参考可配置化,最原始的四个 tasks就可以复用,然后使用 Ansible role 重新组织tasks 文件,拆分为两个role:
其中 external_dns 依赖 helm-repository 然后目录结构如下
roles/helm-repository/main.yml
roles/external-dns/tasks/main.yml
roles/external-dns/meta/main.yml
新建一个文件 deploy-chart-external-dns 来引用 role:helm-repository
最后,仅仅需要维护一个可复用的 role:helm-repository ,以及在deploy-chart-external-dns 定义要集群属性等变量,就可以轻松的维护多集群内的各类容器应用了
执行命令:ansible-playbook deploy-chart-external-dns 返回结果如下:
在局域网中的Linux服务器集群,为了保障运维安全,只能从堡垒机登录到各个Linux服务器。那么需要对Linux服务器集群进行安全加固,限制访问权限。在堡垒机上可以部署脚本来记录用户操作的审计日志(详情参考笔者的文章),那么整个局域网的Linux服务器集群的安全性就可以大大提高。
堡垒机作用明显,其提供运维统一入口和安全审计功能,切断直接访问和事后审计定责,解决“运维混乱”变得“运维有序” 。
下面是三种方法总结。分别从服务端,系统端、防火墙端来完成只允许堡垒机SSH登录的功能。
1、/etc/ssh/sshd_config
修改添加AllowUsers到ssh配置文件/etc/ssh/sshd_config :
AllowUsers myuser@20.132.4.*
然后重启 sshd服务:systemctl restart sshd
2、hosts.allow与hosts.deny
修改/etc/hosts.deny中添加设置 sshd : ALL ,拒绝所有的访问;
修改/etc/hosts.allow,添加设置sshd : 20.132.4.* ,单独开启某个IP地址 。
这两个文件优先级为先检查hosts.deny,再检查hosts.allow。
更加详细信息参考笔者的文章-Linux中hosts.allow与hosts.deny 。
3、iptables防火墙
tcp协议中,禁止所有的ip访问本机的22端口。
iptables -I INPUT -p tcp--dport 22 -j DROP
只允许20.132.4.* 访问本机的22端口
iptables -I INPUT -s 20.132.4.* -ptcp --dport 22 -j ACCEPT
另外/etc/pam.d/sshd也可以提供访问控制功能,调用的pam_access.so模块是根据主机名、IP地址和用户实现全面的访问控制,pam_access.so模块的具体工作行为根据配置文件/etc/security/access.conf来决定。但是囿于资料过少,待以后遇到再解决把。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)