github地址 ansible/awx-operator:一个用于 Kubernetes 的 Ansible AWX 运算符,使用 Operator SDK 和 Ansible 构建。? (github.com)
k3s 是一个轻量级 Kubernetes,它易于安装,二进制文件包小于 40 mb,只需要 512MB RAM 即可运行。
k3s 包需要依赖:
- containerd
- Flannel
- CoreDNS
- CNI
- Host 工具(iptables、socat 等)
k3s 旨在成为完全兼容的 Kubernetes 发行版,相比 k8s 主要更改如下:
- 旧的、Alpha 版本的、非默认功能都已经删除。
- 删除了大多数内部云提供商和存储插件,可以用插件替换。
- 新增 SQLite3 作为默认存储机制,etcd3 仍然有效,但是不再是默认项。
- 封装在简单的启动器中,可以处理大量 LTS 复杂性和选项。
- 最小化到没有操作系统依赖,只需要一个内核和 cgroup 挂载。
准备工作
- Ubuntu 22.04|20.04|18.04 LTS Server|Centos7以上
- At least 16GB of RAM – More is better
- 4vcpus – Pump more if you have
- 20GB free disk storage
- root or user with sudo for ssh
1,升级源和系统:ubuntu22为例
sudo apt update && sudo apt -y upgrade
reboot
2,安装K3S
K3s 提供了一个安装脚本,这是一种将其作为服务安装在基于 systemd 或 openrc 的系统上的便捷方式
注:国内被墙的原因可以选择阿里云的地址 https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_VERSION=v1.25.3+k3s1 INSTALL_K3S_MIRROR=cn sh –
curl -sfL https://get.k3s.io | sudo bash -
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
验证 K3s 安装:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
jammy Ready control-plane,master 58s v1.26.5+k3s1
3,安装kustomizeBinaries | SIG CLI (kubernetes.io)
安装之前先安装一下git 如果你系统自带可以略过此步骤
kustomize 是一个通过 XXX.yaml 文件定制 kubernetes 对象的工具,它可以通过一些资源生成一些新的资源,也可以定制不同的资源的集合。
apt install -y git
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
mv kustomize /user/local/bin/
4,在 Kubernetes 上部署 AWX Operator
在/opt目录下新建一个目录比如awx创建一个kustomization.yaml文件 用kustomize执行基本安装
vim kustomization.yaml ##copy以下内容##
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/ansible/awx-operator/config/default?ref=0.28.0
images:
- name: quay.io/ansible/awx-operator
newTag: 0.28.0
namespace: awx
在该目录下执行以下命令,整个命令的意思是将使用 Kustomize 构建的 Kubernetes 配置文件通过管道传递给 kubectl apply 命令,并将其应用到集群中。
kustomize build . | kubectl apply -f -
##查看是否running可能需要一些时间拉取镜像
kubectl get pod -n awx
NAME READY STATUS RESTARTS AGE
awx-operator-controller-manager-5cc7979ff9-bn45g 2/2 Running 2 (3d ago) 3d1h
新建一个awx.yaml的文件名字随意 将awx部署同一命名的空间 指定设置它的端口号
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
spec:
service_type: nodeport
nodeport_port: 30080
在kustomization.yaml中引用awx.yaml保存
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/ansible/awx-operator/config/default?ref=0.28.0
- awx.yaml
images:
- name: quay.io/ansible/awx-operator
newTag: 0.28.0
namespace: awx
##在执行一下 等待构建 会创建postgressql 以及awx镜像
kustomize build . | kubectl apply -f -
root@awx-master:~# kubectl get pod -n awx
NAME READY STATUS RESTARTS AGE
awx-operator-controller-manager-5cc7979ff9-bn45g 2/2 Running 2 (3d2h ago) 3d2h
awx-postgres-13-0 1/1 Running 0 3d2h
awx-77dfdf9f79-6kvvd 4/4 Running 0 3d2h
5,获取awx默认管理密码
kubectl get secret awx-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode ; echo
user:admin password:xxxx
k3s加代理方式 and Git加代理
sudo tee /etc/systemd/system/k3s.service.env > /dev/null << EOF
HTTPS_PROXY=http://[ip]:[port]
HTTP_PROXY=http://[ip]:[port]
EOF
sudo systemctl daemon-reload
sudo systemctl restart k3s
git config --global http.proxy http://<代理服务器主机名>:<代理服务器端口号>
git config --global https.proxy https://<代理服务器主机名>:<代理服务器端口号>
No Comments