AWXをRHEL8のK3sにデプロイしてみる

以前はDockerでAWX構築できたけどKubernetes上で動かすようになったみたい
とりあえず使いたいからAWXをデプロイしたい

概要

  • RHEL8にK3sをインストールしてAWXをデプロイします

環境

AWXをK3sにデプロイ

K3sのデプロイ

  1. K3sの公式手順に従いインストールを実施

     # K3sをインストール
     curl -sfL https://get.k3s.io | sh - 
     # NodeのSTATUSが`Ready`であることを確認する
     sudo k3s kubectl get node 
    

AWXのデプロイ

  1. Kustomizeのインストール

     curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
    
  2. マニフェストファイルkustomization.ymlを作成

    • 使用するAWX OperatorバージョンはGithubのtagバージョンから選んで書き換えてください。
    • 今回は1.2.0を使用します
     ---
     apiVersion: kustomize.config.k8s.io/v1beta1
     kind: Kustomization
     resources:
     - github.com/ansible/awx-operator/config/default?ref=1.2.0
    
     images:
     - name: quay.io/ansible/awx-operator
       newTag: 1.2.0
    
    namespace: awx
    
  3. マニフェストファイルkustomization.ymlの適用

     ./kustomize build . | kubectl apply -f -
    
  4. マニフェストファイルawx.ymlを作成

     ---
     apiVersion: awx.ansible.com/v1beta1
     kind: AWX
     metadata:
       name: awx
     spec:
       service_type: nodeport
       nodePort_port: 30080
    
  5. マニフェストファイルkustomization.ymlにAWXのマニフェストファイル名を追加

     ---
     apiVersion: kustomize.config.k8s.io/v1beta1
     kind: Kustomization
     resources:
       - github.com/ansible/awx-operator/config/default?ref=1.2.0
       - awx.yml
    
     images:
       - name: quay.io/ansible/awx-operator
         newTag: 1.2.0
    
     namespace: awx
    
  6. マニフェストファイルを再度適用

     ./kustomize build . | kubectl apply -f -
    
  7. Podが起動しているか確認

    • STATUSがRunningであることを確認する
     kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -n awx
     ---
     NAME                   READY   STATUS    RESTARTS   AGE
     awx-postgres-13-0      1/1     Running   0          79m
     awx-785589d6c7-hlmth   4/4     Running   0          78m
    
  8. awx-serviceで公開しているPortを確認

     kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator" -n awx
     ---
     NAME              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
     awx-postgres-13   ClusterIP   None           <none>        5432/TCP       81m
     awx-service       NodePort    10.43.36.159   <none>        80:30080/TCP   80m
    
  9. AWXの管理画面にログインするため、adminの初期パスワードを確認

     kubectl get -n awx secret awx-admin-password -o jsonpath="{.data.password}" | base64 --decode
    
  10. ブラウザでhttp://<サーバのIP>:30080にアクセスし、ログインする。

    • ユーザー名:admin
    • パスワード:確認したadminの初期パスワード