Ansible AWX 部署于k8s集群

本文介绍了如何在Kubernetes(k8s)集群中部署Ansible AWX,包括环境配置、安装Docker、kubeadm、kubelet,使用AWX Operator,解决Pod挂起问题及存储配置。特别强调了在没有minikube的环境下,使用Kubeadm搭建单节点k8s集群的方法,并给出了详细的步骤和注意事项。
摘要由CSDN通过智能技术生成

Ansible AWX 部署于k8s集群

github地址:https://github.com/ansible/awx

介绍

新版awx需要awx operator去搭建,官方建议使用minikube去部署awx operater,本人在公司测试环境机器中搭建,因为测试环境的网络代理问题,在搭建完minikube后,虚拟出的主机通过docker连接,若ssh后配置docker代理重启后会遇到集群损坏的问题,且minikube ssh后的主机配置很低,在外部也不好访问到内部的服务,诸多不易,最终选择用Kubeadm搭建一个单节点k8s集群,之后的节点扩容也比较方便。

此篇编写时最新的awx版本是21.4.0, 网上博客教程大多还是以17.1.0甚至更老的版本为主,并且都是使用ansible playbook的形式直接部署,所以决定分享自己的踩坑记录供大家学习,因为搭建过程中的有些问题已经修复不能复现,我会引用一些其他博客的教程并解释,若有任何问题欢迎留言,回复不及时还请海涵!

部署虚拟机

[root@k8s-master qateadmin]# hostnamectl
   Static hostname: k8s-master
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 0a10d5ce5ae4446eaaca9f5babc65162
           Boot ID: b0903daf3ac14d6084ef575b0b655541
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-957.21.2.el7.x86_64
      Architecture: x86-64

虚拟机型号如上,配置要求内存不低于4G,CPU核数2个以上,公司申请的机器配置较高就没有这个顾虑。

环境配置

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

# 关闭swap
swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

# 根据规划设置主机名
hostnamectl set-hostname <hostname>

# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.178.171 k8s-master
192.168.178.172 k8s-node1
192.168.178.173 k8s-node2
EOF

# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效

# 时间同步
yum install ntpdate -y
ntpdate time.windows.com

安装 Docker、kubeadm、kubelet:

docker安装可以用daocloud源直接一键安装或者使用脚本安装最新docker:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或 
curl -sSL https://get.daocloud.io/docker | sh

这里给出菜鸟教程的手册:https://www.runoob.com/docker/centos-docker-install.html

[root@k8s-master qateadmin]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

配置下载加速器:公司的配置要求,自己主机配置时cgroupdriver=systemd一定要配置

vim /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": [
    "k8s.gcr.io",
    "gcr.io",
    "quay.io"
  ],
  "registry-mirrors": [
    "http://k8s.gcr.io",
    "http://gcr.io",
    "http://quay.io"
  ]
}
systemctl restart docker
docker info        #查看docker信息,进行确认

在公司测试环境中不仅要配置网络代理,也需要配置docker的网络代理,这个给出配置记得替换url:

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值