技术虚拟化

k3s安装AWX基于官方文档

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 主要更改如下

  1. 旧的、Alpha 版本的、非默认功能都已经删除。
  2. 删除了大多数内部云提供商和存储插件,可以用插件替换。
  3. 新增 SQLite3 作为默认存储机制,etcd3 仍然有效,但是不再是默认项。
  4. 封装在简单的启动器中,可以处理大量 LTS 复杂性和选项。
  5. 最小化到没有操作系统依赖,只需要一个内核和 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://<代理服务器主机名>:<代理服务器端口号>
Prev Next
No Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注