结合GPT使用k8s部署awx-oprator

这个错误表明你尝试添加的 Helm 仓库 URL 无法访问,或者 index.yaml 文件不存在,可能是 AWX Operator 的 Helm 仓库已经变更或不再支持这个 URL。

根据 AWX Operator 项目的最新文档,它不再使用 Helm 作为主要的安装方式,而是通过直接应用 Kubernetes 自定义资源(CRD)和 Operator 来安装。你可以按照以下步骤来安装 AWX Operator,而不需要使用 Helm。

安装 AWX Operator(推荐方法)

  1. 安装 Kubernetes Operator(通过 kubectl 方式)

    首先,确保你有一个 Kubernetes 集群并且 kubectl 已经正确配置。

  2. 克隆 AWX Operator 仓库

    你可以直接从 GitHub 上克隆 AWX Operator 仓库:

    git clone https://github.com/ansible/awx-operator.git
    cd awx-operator
    
  3. 部署 AWX Operator

    使用 kustomize 来应用 AWX Operator:

    export NAMESPACE=awx  # 你可以选择其他命名空间
    kubectl create namespace $NAMESPACE
    kubectl config set-context --current --namespace=$NAMESPACE
    kubectl apply -k awx-operator/config/default
    

    这会在你指定的命名空间中部署 AWX Operator。

  4. 创建 AWX 实例

    创建一个 awx.yaml 文件来定义 AWX 实例:

    apiVersion: awx.ansible.com/v1beta1
    kind: AWX
    metadata:
      name: awx
    spec:
      service_type: nodeport
      ingress_type: none
      hostname: awx.example.com  # 你可以修改为你的主机名
      postgres_storage_class: "standard"  # 你的存储类名称
      postgres_storage_requirements:
        requests:
          storage: 10Gi  # PostgreSQL 存储大小
    

    然后应用这个 YAML 文件:

    kubectl apply -f awx.yaml
    
  5. 检查 AWX 状态

    使用以下命令来检查 AWX Operator 和 AWX 实例的状态:

    kubectl get pods -n $NAMESPACE
    

总结

AWX Operator 项目不再通过 Helm Chart 来安装。你可以通过直接克隆 AWX Operator 仓库并使用 kubectlkustomize 来安装。如果你还想要使用 Helm,可以考虑其他社区提供的解决方案,或使用上面的官方推荐方法。

如果storage class用的是hostpath,需要手动创建pv

cat hostpath.yaml 
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard  # 存储类名称,可以在配置中引用
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate

cat pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pv2
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: standard  # 与 PVC 的 storageClassName 匹配
  local:
    path: /mnt/data  # 本地存储路径
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname  # 节点的主机名
          operator: In
          values:
          - node1  # 指定存储的节点名称

登录方式
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
awx-demo-postgres-13 ClusterIP None 5432/TCP 100m
awx-demo-postgres-15 ClusterIP None 5432/TCP 65m
awx-operator-controller-manager-metrics-service ClusterIP 172.16.0.86 8443/TCP 66m
awx-postgres-15 ClusterIP None 5432/TCP 65m
awx-service NodePort 172.16.0.213 80:30459/TCP 20m

访问地址
clusterip:30459

密码:

kubectl get secret awx-admin-password -o jsonpath="{.data.password}" | base64 --decode

posted @ 2024-09-11 16:46  jasmine456  阅读(9)  评论(0编辑  收藏  举报