【易客吧】_全网激活码总代_激活码商城

您现在的位置是:首页 > 热门资讯 > 正文

热门资讯

使用 Ansible 轻而易举地自动化 IT 任务 (使用ansible一键安装k8s高可用集群)

用户投稿2024-04-10热门资讯17

Ansible 是一款功能强大的开源自动化平台,可简化 IT 基础设施管理。使用 Ansible,您可以轻松地自动化各种 IT 任务,例如配置服务器、部署软件和管理复杂的基础设施。

Ansible 的优点:

  • 无代理:Ansible 不需要在目标主机上安装任何代理软件,使部署和维护变得更加容易。
  • 强大而灵活:Ansible 使用 YAML 编写剧本,可以根据您的需要进行高度定制,以满足您的自动化需求。
  • 模块化:Ansible 拥有大量的预构建模块,可用于执行各种自动化任务,例如安装软件、管理文件和配置系统设置。
  • 开源:Ansible 是开源的,这意味着您可以免费使用和修改它,以满足您的特定需求。

使用 Ansible 一键安装 k8s 高可用集群

k8s(Kubernetes)是一个流行的容器编排平台,用于管理容器化应用程序。使用 Ansible,您可以一键安装和配置一个 k8s 高可用集群。

先决条件:

  • Ansible 2.10 或更高版本
  • 运行 Linux 的三台主机作为 k8s 节点

步骤:

    使用 Ansible 轻而易举地自动化 IT 任务 (使用ansible一键安装k8s高可用集群) 第1张
  1. 在控制节点上安装 Ansible。例如,对于 Ubuntu,请运行以下命令:
  2.       sudo apt-get updatesudo apt-get install ansible
  3. 从 Ansible Galaxy 下载 k8s 高可用集群角色:
  4.       ansible-galaxy install kubernetes.core
  5. 创建 hosts 文件,其中包含 k8s 节点的 IP 地址和主机名:
  6.       [k8s_nodes]k8s-node1 ansible_host=192.168.1.100k8s-node2 ansible_host=192.168.1.101k8s-node3 ansible_host=192.168.1.102
  7. 创建 playbook.yml 文件,其中包含 k8s 高可用集群的配置:
  8.     ---- hosts: k8s_nodesvars:k8s_version: v1.23.6roles:- kubernetes.core.k8s
  9. 运行 playbook:
  10.       ansible-playbook playbook.yml
  11. 等待 playbook 完成。这将安装和配置 k8s 主节点、工作节点和所有必需的组件,例如 etcd、kube-apiserver 和 kube-controller-manager。

验证:

您可以使用 kubectl 命令验证 k8s 集群是否已正确配置并运行:

    kubectl get nodeskubectl get pods --all-namespaces

结论:

Ansible 是一个强大的自动化工具,使您可以轻松地自动化各种 IT 任务。使用 Ansible,您可以提高效率、减少错误并简化 IT 基础设施管理。通过遵循本文中的步骤,您可以使用 Ansible一键安装和配置 k8s 高可用集群,从而简化您的容器化应用程序的管理。


Ansible工具使用

Ansible是一个自动化管理IT资源的工具。

系统环境配置 安装软件 持续集成:自动化部署 热回滚

无客户端 推送式 丰富的第三方module,大概1W多个 基于YAML的Playbook 商业化的支持

效率低,易挂起:基于ssh通信 并发性能差

环境准备 Python Setuptools

pip(可选): pip install ansible

git clonesource ./hacking/env-setup python install 替换自带的二进制运行文件

yum install ansible

Ansible -> ssh-> ssh -> shell

Ansible配置文件路径优先级 (1) export ANSIBLE_CONFIG (2) ./ (3) ~/ (4) /etc/ansible/

配置文件详解ansible/ at devel · ansible/ansible · GitHub

(1) defaults 默认配置项

inventory : 存放可通信主机的目录,可修改为普通用户目录 library :Ansible默认搜寻模块路径 forks : 最大开辟的进程数,不易过大,过大性能耗费高;不宜过小,过小并发性能低,一般设置为CPU核数*2。 ask_pass : 可以控制Ansible playbook是否会自动默认弹出输入密码框 ask_sudo_pass : 用户使用的系统平台开启了sudo密码的话,这个参数应该设置为true gather_subset : 设置收集的内容,包括all、network、hardware、virtual、facter、ohai remote_port : 设置客户机的端口,一般都是22 remote_tmp : 设置客户机的临时目录 remote_user : 设置客户机的用户 sudo_exe : sudo命令的路径 sudo_flags : sudo参数 sudo_user : 能够使用sudo的user 开发者中心的插件相关功能,开发者可以开发相应的插件,来完成自己的功能: action_plugins : 激活事件 callback_plugins : 回调 connection_plugins : 连接,比如不使用ssh连接 filter_plugins : 过滤器 loopup_plugins : 加载路径 vars_plugins : 任何地方加载

(2) privilege_escalation执行命令的用户权限设置

(3) paramiko_connection paramika插件设置

(4) ssh_connection ssh链接设置

(4) accelerate (5) selinux &colors 看源码

3.1 编辑/etc/ansible/hosts,添加机器ip 3.2 添加本机的Public SSH key到目标机器的authorized_keys 3.3 添加本机的私钥到Ansible 3.4ansible all -m ping 测试是否添加成功 ansible : 命令主体 all : 默认是所有机器,被操作的目标机器的正则表达式,也可以按需求换做hosts文件中的其他组名 举例:ansible test -m ping ansible 192.168.1.10 -m ping -m ping : 指定要使用的模块 -a : 指定传入模块的参数 举例:ansible all -a /sbin/reboot -f 10重启所有机器,每次重启10个ansible all -a /usr/bin/foo -u root指定root用户执行shell命令 -C -D : 两个一起使用,检查hosts规则文件的修改 -l : 限制匹配规则的主机数 --list-hosts : 显示所有匹配规则的主机 -m -M :指定所使用的模块和模块的路径 --syntax-check : 检查语法 -v : 显示详细的日志

playbook可以编排有序的执行过程,甚至可以在多组机器间,来回有序的执行特别指定的步骤,并且可以同步或异步的发起任务。 待学习补充...

功能:

调用Ansible模块:

Ansible 2.0之前和2.0之后API相差很大,注意版本

调用Ansible2.0 API:

6.1 自己写一个模块 6.2 把模块放到木块文件夹下 配置文件中的lilbrary配置参数为ansible module的放置路径。 6.3 运行自己的模块 ansible all -m test

服务器数量比较少,怎么运维比较好?

运维人员的工作每天基本上都是在检查问题,枯燥但又重要, 要是你的某一个环节出现问题并没有及时发现问题,对于企业来说损失可能非常大,基本上运维人每天的工作我罗列了下,有这几种:

1、负责服务器的硬件配置、软件安装、机房上下架等技术维护工作

2、负责虚拟化技术产品物理机配置、管理和日常运行监控和维护

3、负责独立主机或虚拟应用产品的开通使用、日常维护、故障诊断和排除

4、提供独立主机或虚拟应用客户产品操作和应用方面的技术支持

5、监视分管的服务器,及时发现问题,并积极解决问题

现在信息化数字时代,单靠人工去检查出现错误几率会很大,而且有的运维人还不只管理两台服务器,像我们公司的运维每人至少要管理30台服务器,这样子单靠人工运维耗费的人工成本和时间是非常大的,所以还是推荐你用运维工具吧,比如云帮手()

1.支持跨云商批量管理服务器

2.兼容性强大,兼容市面基本所有的云商云主机,兼容操作系统;

3.操作简单,可视化界面预览资源、一键修复、一键部署;

4. 可以远程登录云主机FTP桌面,处理云主机上的文件;

5.监控和资源还有告警功能,这个是挺好的,不用盯着看;

6.系统修复功能,这个是挺实用也比较必须的;

7.免费使用。总得来说功能还是挺全的,不存在需要又要另外找软件的尴尬。

你好,很高兴回答你这个问题。从运维的角度来讲,服务器的数量少并不意味着我们的运维工作就非常轻松,相反我们更应该重视此阶段的工作。

我们可以从以下几方面来开展我们的运维工作:

1.应用服务器

我们可以从当前服务器中找出 至少2个节点装Vsphere虚拟化,建立一个数据中心、集群 ;如果你的服务器有多网卡和SCSI,还可以做一些更高级的应用,如vmotion、负载均衡、高可用等。当虚拟机或服务器故障,可以 实现故障自动转移,有效的避免了单节点的故障,提供服务器的容错率 。

我们可以在新建的虚拟机部署Web、API等各种应用,而且 虚拟机可以在vCenter图形化界面下统一管理 。这一般是中小公司的在服务器方面的解决方案。

当然,我们对docker比较熟悉,可以使用一套docker解决方案,这比Vsphere更能节省一部分资源。当然这个需要的技能要求也比较高,需要我们不断积累。

2.数据库服务器

数据库服务器在此我们单独拿出来,是因为数据库对服务器性能、磁盘IO要求比较高,不太建议使用虚拟机,当然这需要根据业务的实际情况来做选择。 数据库我们需要通过一主一从、一主二从的方式实现高可用,来避免数据库单点问 题,我们还可以选择合适的proxy来进行读写分离、读负载均衡等。另外还要考虑数据的本地备份、异地备份,来确保数据可恢复。

3.系统监控

当我们在应用服务器和数据库服务器上线一套系统后, 我们需要通过监控掌握从服务器硬件、基础状态、应用、数据库等从下到上的运行状态 ,以便我们能够对告警及时做出响应。考虑到报警的及时性,我们需要监控接入多种报警渠道,如微信、钉钉、邮件、短信等。监控的目的是发现问题、解决访问,因此我们需要踏实的做好这一步,才能为我们的业务保驾护航。

好了,其实不管服务器多少,我们都需要扎实的把基础打好,这样才能以不变应万变面对各种情形。希望我的回答能够帮到你。

题主没有详细说明具体应用系统的功能,比如是否单一的Web服务?有没有微服务、分布式、集群化扩展的潜在需求?

通常来说,建议使用云服务自动化运维。云服务已经成为IT技术的核心基础设施,充分利用云服务带来的弹性和分布式优势,赋能自动化运维。

一,自动构建系统

如果需要构建应用,那么就建议配置使用CI/CD持续化集成和自动化部署,比如常用的Jenkins,配置Git代码提交时触发构建,然后自动部署。

二,日志收集处理系统

1,ELK是常见的日志收集管理系统,包括ElasticSearch, LogStash, Kibana三个服务,架构示意图如下:

2,在ELK系统中,Kibana是一个图形化展示工具,配置查询条件,运维人员随时可以搜索指定日志信息,分析处理故障。

三,服务监控

1,云监控CloudMonitor

主流云服务商都将监控功能集成到了基础架构中,以阿里云为例,云监控提供了多种配置,多维度全方位监控。

比如配置CPU使用率到达80%时,自动触发动作,增加服务器实例,同时邮件通知运维人员。

2,应用监控

以监控宝为例,配置服务地址,选择分布在不同地区和运营商的监测点。当监测点不能正常调用配置的服务地址时,将收到警告信息,可以选择邮件、短信、电话等通知方式。

四,潜在的系统扩展需求

1,是否集群化部署?需要AutoScaling自动伸缩吗?

小型化和集群化并不冲突。如果采用集群化部署,可以配置触发条件,满足时自动增加或者释放服务器资源。比如当CPU使用率达到75%或者内存占用率达到75%时,根据配置好的服务器和数量,自动触发。

2,是否使用Docker容器技术?

Docker将应用以及依赖打包到一个可移植的镜像中,可以实现虚拟化,有助于快捷高效的交付应用,结合Docker-compose资源编排,快速实现自动部署更新,不再需要常用的Jenkins构建服务器。

机器数比较小的话,你可以用云的服务器,这样可以节省好多钱。找一个专门的运维,还不如让开发自己来搞,因为机器少运维他也应付得过来。现在都在搞云计算了,把你的机器放上阿里云或者腾讯云,你自己维护好很多,包括网络贷款都很容易扩容。上面这个我说到的只是说建议你如果你已经是自己的机器了。我建议你从我下面所说的来搞。

认为的整个过程的话一般分为三个阶段,第一的话是手工阶段,什么东西都是手工搞。

第2个阶段就是脚本阶段了,本来手工搞的东西全部脚本化。

第3个阶段就是平台化了,平台化了之后,所有东西都在页面上完成系统完成,不需要人工来干预,甚至不用运维来搞。

有一些人说既然认为就是最后的一个阶段,但是这个很不成熟。所以我就不说了。

针对你这个机器数少的,你可以手工认为,或者说用脚本认为都没问题。

在合适的阶段做合适的事情就是最好的。所以我建议你手工运维或者脚本运维。

我们项目用的wgcloud运维监控系统 ,它前身是开源项目,后来推出的商业版,也有免费版

wgcloud运行很稳定,性能很好,部署和上手容易

wgcloud支持主机各种指标监控(cpu状态/温度,内存状态,磁盘容量/IO,硬盘smart监控,系统负载,网卡流量,硬件系统信息等),数据可视化,进程应用监控,大屏可视化,服务接口检测,DOCKER监控,自动生成网络拓扑图,端口监控,日志文件监控,web SSH(堡垒机),指令下发执行,告警信息推送(邮件钉钉微信短信等)

可以装虚拟机代替,在同一个局域网情况下

找服务商外包服务,或者网上托管也不贵收费

服务器数量比较少,比如10台服务器,基本可以不设置运维岗位了,后端开发人员 或者架构师就能搞定。

我就是那种曾经在创业的小公司待过的开发人员,开发,运维我都干了。

但是想想如何更科学更高效的运维还是很有必要的。

运维的目的

软件系统的运行时环境:即公司的业务产线,靠它创造业务价值,这个是最核心的功能诉求。

实时监控系统: 任何时候都要对当前公司的产线的压力一清二楚,有问题功能随时解决,有性能问题及时扩容或者回收资源

降低服务器成本:在业务萎缩的情况下,准确评估哪些资源可以回收,降低服务器的支出

这个是当时我认为的运维的三个主要目的。

运维方案

开发半路出家,当时采用的是shell+python+ansible+jekins+elk的方式

首先,我会及时的更新业务产线的物理架构图,根据架构图来规划服务器的资源使用。

比如多少个web服务,数据库多少,zk,kafka,redis集群怎么分布。

集群部署一般是放在多个服务器上的,这个时候ansible就派上用场了。

jekins主要用来自动发布更新程序已经做定时回收磁盘的任务。

elk主要用来做应用的日志系统和监控告警; 可以通过看板随时知道产线的请求数量和并发数量;

以上的运维方案适用于小公司。运维工程师看到了可以补充

搞个zabbix刷

数量少。如果配置好可以虚拟化。然后跑容器

多K8S集群运维管理参考

可以通过--kubeconfig 命令行参数来选择操作不同集群

使用默认的 kubeconfig 文件, 需要将多个 kubeconfig 合并,保存在kubeconfig 的默认位置 $HOME//config , 合并后的参考格式如下:

kubeconfig 中定义了 (clusters)集群、(users)用户和 以及相关联的(contexts)上下文,如果使用Uk8s 可以在控制台: 概览-> 内网凭证/外网凭证 查看需要的凭证,然后按照上述格式补全即可

方式三:使用ansible Playbook 来管理集群内的容器应用

场景描述: 目前我们需要使用helm安装一个external-dns 用来将 ingess对接的域名解析规则,自动同步到DNS服务器,使用shell命令操作参考如下:

将以上操作转化为 ansible-playbook 的tasks 可以拆分为四个 tasks ,

将上诉文件保存为 deploy_external_, 执行命令 ansible-playbook deploy_external_命令执行成功回看到返回如下类似结果:

方式四:使用ansible-playbook roles来组织管理集群变更tasks

在方式三中,如果是管理一个集群,编写一个deploy_external_就能完成工作,如果管理多个集群,就要编写多个yaml文件,并且重复编写很多差异不多的tasks 实际操作可能类似这个样子:

经过对比分析,这些tasks 主要差异变量:

只要将以上两个变量参考可配置化,最原始的四个 tasks就可以复用,然后使用 Ansible role 重新组织tasks 文件,拆分为两个role:

其中 external_dns 依赖 helm-repository 然后目录结构如下

roles/helm-repository/

roles/external-dns/tasks/

roles/external-dns/meta/

新建一个文件 deploy-chart-external-dns 来引用 role:helm-repository

最后,仅仅需要维护一个可复用的 role:helm-repository ,以及在deploy-chart-external-dns 定义要集群属性等变量,就可以轻松的维护多集群内的各类容器应用了

执行命令:ansible-playbook deploy-chart-external-dns 返回结果如下:

若对本页面资源感兴趣,请点击下方或右方图片,注册登录后

搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源

如有其他疑问,请咨询右下角【在线客服】,谢谢支持!

使用 Ansible 轻而易举地自动化 IT 任务 (使用ansible一键安装k8s高可用集群) 第2张

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
欢迎你第一次访问网站!