当前位置: 首页 > news >正文

awx详解

ansible的可视化的界面

k8s部署应用

  • 资源清单,相当于在linux上编译安装软件包

  • helm用的特别多

  • kustmize

  • operator

  • awx的部署,

部署完awx的operator,就会出现一些一些资源对象,api-resources | grep awx

kubectl 部署即可

需要一个pv,pvc,动态制备的pv,使用的是nfs

awx-demo.yml文件

需要改变这个pvc,awx-demo这个文件yaml里面修改即可

awx

1、部署awx

1、克隆仓库

[root@master01 ~]# git clone https://gitee.com/yftyxa/awx-operator.git# 切换分支,这个是稳定版本的
[root@master01 awx-operator]# git checkout exam [root@master01 awx-operator]# cd config/default/
[root@master01 default]# ls
awx-demo.yaml  kustomization.yaml  manager_auth_proxy_patch.yaml  manager_config_patch.yaml

这个yaml文件,跟我们之前写的yaml文件的格式不一样,现在需要通过命令来生成原始的yaml

2、生成yaml

kubectl kustomize 这个命令来生成yaml.但是需要注意的就是这个必须是一个目录,而不是一个文件

# 创建部署的目录,避免混杂在一起了
[root@master01 default]# mkdir deploy
[root@master01 default]# cd deploy/# 将之前的好几个文件合并到同一个文件即可
[root@master01 deploy]# kubectl kustomize ../ > awx-operator.yml

3、部署operator

[root@master01 deploy]# kubectl apply -f awx-operator.yml 
namespace/awx created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
error: unable to recognize "awx-operator.yml": no matches for kind "AWX" in version "awx.ansible.com/v1beta1"

上面有一个报错,说不识别这个资源对象,不需要管这个,再次执行一遍这个文件

[root@master01 deploy]# kubectl apply -f awx-operator.yml 
namespace/awx unchanged
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com unchanged
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com unchanged
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com unchanged
serviceaccount/awx-operator-controller-manager unchanged
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role configured
role.rbac.authorization.k8s.io/awx-operator-leader-election-role unchanged
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader unchanged
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role unchanged
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding unchanged
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding unchanged
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding unchanged
configmap/awx-operator-awx-manager-config unchanged
service/awx-operator-controller-manager-metrics-service unchanged
deployment.apps/awx-operator-controller-manager configured
awx.awx.ansible.com/awx-operator-awx-demo created

就没有保存了

发现创建了很多的资源对象

[root@master01 deploy]# kubectl api-resources | grep -i awx
awxbackups                                     awx.ansible.com/v1beta1                true         AWXBackup
awxrestores                                    awx.ansible.com/v1beta1                true         AWXRestore
awxs                                           awx.ansible.com/v1beta1                true         AWX

4、查看pod

让这个pod能够修改pv底层使用的目录所有者,允许客户端的root操作nfs共享出来的文件

# 允许客户端使用root对nfs目录操作的权限
[root@master01 ~]# cat /etc/exports
/nfsdata *(rw,no_root_squash)

这个awx中的数据库是需要使用存储的,pv,动态存储

# 存储类设置为默认的,添加注释修改为默认的动态存储,以后创建pvc就自动的去找这个动态存储类
storageclass.kubernetes.io/is-default-class: "true"[root@master01 deploy]# cat awx-demo.yaml 
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX  # awx资源
metadata:name: awx-demonamespace: awx
spec:postgres_storage_class: "nfs-client"  # 使用这个nfs动态存储service_type: nodeportpostgres_image: swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/postgres  # 能够拉取到的镜像postgres_image_version: "13"redis_image: swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/redisredis_image_version: "7"应用这个文件,删除awx-operator-awx-demo-postgres-13-0  这个资源,不受控制的root@master01 ~]# kubectl get pod -n awx 
NAME                                               READY   STATUS             RESTARTS   AGE
awx-demo-postgres-13-0                             1/1     Running            1          83m
awx-demo-task-7f495655c6-vl9q7                     4/4     Running            4          81m
awx-demo-web-68c55fc6d6-hkg4k                      3/3     Running            3          81m
awx-operator-awx-demo-postgres-13-0                0/1     ImagePullBackOff   0          78m
awx-operator-controller-manager-85d95854c9-5zrk4   2/2     Running            3          84m# 删除这个镜像拉取失败的,可以不用管他的

如果还有问题的话,就是查看这些pod的镜像,都弄成能下载的镜像即可
非常的折磨人,改了配置文件,还是原样的,我去了啊,特性

执行的动作是黑盒的,客户端不可控

查看访问端口

# 映射到主机上的30906端口
[root@master01 ~]# kubectl get svc -n awx 
NAME                                              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
awx-demo-postgres-13                              ClusterIP   None            <none>        5432/TCP       84m
awx-demo-service                                  NodePort    10.107.76.241   <none>        80:30906/TCP   82m
awx-operator-awx-demo-postgres-13                 ClusterIP   None            <none>        5432/TCP       85m
awx-operator-controller-manager-metrics-service   ClusterIP   10.109.37.178   <none>        8443/TCP       85m

2、登录awx

上面我们查看了端口映射为30906,访问这个端口即可

img

内存提升为4G

不然这个实验都完成不了

主服务器是3G node都是4G

重新部署k8s, 1一个master,2个node节点

nfs动态制备,ingress配置,awx实验

k8s服务器这个 还是比较的消耗资源的

安装就一个核心问题,就是

http://www.jsqmd.com/news/630275/

相关文章:

  • 如何优雅地探索全球MMD创作社区?IwrQk带你解锁Iwara移动端新体验
  • 地震数据处理入门:5分钟搞定IRIS数据下载与mseed2sac格式转换
  • 从GCC源码剖析C语言编译流程——动手获取与构建
  • SCAU高级语言程序设计:那些课本没讲,但OJ会考的C语言‘潜规则’
  • 如何高效管理多协议下载:imFile专业工具深度解析
  • SAR ADC 逐次逼近数模转换器及其集成电路设计
  • 5步实现AI编程自由:Cursor VIP共享方案终极指南
  • 低空经济“充电网”:原理、场景与未来布局全解析
  • 归并排序力扣题(leetcode)圆
  • 英飞凌TC3XX HSM调试接口怎么配置?手把手教你避开UCB_HSM_ORIG/COPY的常见坑
  • Niushop二次开发入门:如何基于ThinkPHP6+LayUI+插件机制快速定制你的电商功能
  • uView 2.0样式穿透实战:从u-tabs到u-slider,手把手教你搞定APP端像素级UI还原
  • dplyr和tidyr用法克
  • 从通用到垂直:行业大模型将成为企业数字化转型的核心抓手
  • 避坑指南:MATLAB调用ROS2话题时,你的‘msg.data’为什么报错?
  • 量化入门-用Python筛选爆量上涨的股票啪
  • Pretext:值得关注的文本排版引擎帜
  • 一文读懂系列:SSL加密流量检测在企业安全防护中的实战应用
  • 告别卡顿!在PySide6桌面应用中实现丝滑的Matplotlib动态图表(附线程管理避坑指南)
  • 红队实战:利用RLO技术伪装exe为jpg的社工钓鱼攻击
  • Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接脚
  • AI算力行业深度报告:供需格局、技术演进与投资机会
  • SpringBoot实战:3种方法将本地图片转成MultipartFile(附完整代码)
  • 从零到一:Ubuntu系统下systemd服务配置与实战管理指南
  • 龙虾白嫖指南,请查收~吓
  • Hagicode.Libs:统一集成多个 AI 编程助手 CLI 的工程实践傻
  • WarcraftHelper:魔兽争霸III经典版终极兼容性优化指南
  • 全球AI监管格局:合规将成为企业AI落地的核心门槛
  • Apache SeaTunnel .. 重磅发布!最值得关注的 Top 功能更新肯
  • 伺服电机选型指南:转矩/速度/位置控制模式在包装机械中的典型应用