• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

Kubernetes 클러스터를 사용한 AWX 18.0 설치 관련

21.03.28 10:26 작성 조회수 483

1

안녕하세요. 강사님,

좋은 강의 잘듣고 있습니다.

 AWX 18.0 (Ansible Tower upstream) 부터는 AWX Operator 선호되는 설치 방법이라 Kubernetes 클러스터 구성을 위해 강의수강을 하고 있습니다.

(https://github.com/ansible/awx/blob/devel/INSTALL.md)

제공된 vagrant file로 마스터1개, 워커노드1개(8G)로 구성을 했고

설치 메뉴얼에 따라 설치를 하던중

awx-postgres-0 pod 상태가 pending 상태로 나옵니다.

persistent volume 관련 문제인것 같은데,,해결하기 힘들어 문의드립니다.

[root@m-k8s ~]# kubectl get pods -o wide
NAME                           READY   STATUS    RESTARTS   AGE    IP               NODE     NOMINATED NODE   READINESS GATES
awx-6f7bd969db-b4kt4           4/4     Running   0          99m    172.16.221.130   w1-k8s   <none>           <none>
awx-operator-57bcb58f5-qqxp6   1/1     Running   0          102m   172.16.221.129   w1-k8s   <none>           <none>
awx-postgres-0                 0/1     Pending   0          99m    <none>           <none>   <none>           <none>

[root@m-k8s ~]# kubectl get nodes
NAME     STATUS   ROLES                  AGE    VERSION
m-k8s    Ready    control-plane,master   110m   v1.20.2
w1-k8s   Ready    <none>                 104m   v1.20.2

[root@m-k8s ~]# kubectl describe pvc
Name:          postgres-awx-postgres-0
Namespace:     default
StorageClass:  
Status:        Pending
Volume:        
Labels:        app=awx-postgres
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Filesystem
Used By:       awx-postgres-0
Events:
  Type    Reason         Age                    From                         Message
  ----    ------         ----                   ----                         -------
  Normal  FailedBinding  2m31s (x362 over 92m)  persistentvolume-controller  no persistent volumes available for this claim and no storage class

[root@m-k8s ~]# kubectl describe pv
Name:            awx-postgres
Labels:          type=local
Annotations:     <none>
Finalizers:      [kubernetes.io/pv-protection]
StorageClass:    manual
Status:          Available
Claim:           
Reclaim Policy:  Retain
Access Modes:    RWO
VolumeMode:      Filesystem
Capacity:        10Gi
Node Affinity:   <none>
Message:         
Source:
    Type:          HostPath (bare host directory volume)
    Path:          /mnt/data
    HostPathType:  
Events:            <none>

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

답변 2

·

답변을 작성해보세요.

0

storage class가 필수인가를 읽어봤는데..

Note: If tower_postgres_storage_class is not defined, Postgres will store it's data on a volume using the default storage class for your cluster.

이런 구문이 있어서요. 아마 되어야지 싶은데요?

어떤 상태시려나요..? 궁금(호기심)

https://github.com/ansible/awx-operator?fbclid=IwAR1XvFh2B8i5Vyw0EttTvFikU7-63Tg0xogIt1HwFq51KeN7FHZ03hNT4nc

아이고님의 프로필

아이고

질문자

2021.04.03

minikube 사용해서 설치 완료했습니다. UI는 많이 변한듯하네요. 

NAME                           READY   STATUS    RESTARTS   AGE

awx-6f7bd969db-pd982           4/4     Running   0          10m

awx-operator-57bcb58f5-rtqgs   1/1     Running   0          12m

awx-postgres-0                 1/1     Running   0          10m

아 결국 미니쿠베로 하셨군요...테스트는 미리 쿠베로 되긴 할텐데 실제로 사용할려면 마스터+워커 구조에서 Dev 테스트는 하셔야 하니...아마 일단 익숙해 지시면 다시 필요하시긴 하겠네요..그때 다시 말씀 부탁드려요. 

소문에 그나마 이번 버전이 쓸만해 진다는거 같긴 하더라고요...

(그전에는 손도 대지 말라고 해서 --;)

아마 이제 '오픈시프트'를 생각해서 컨테이너로 말고 올리는거 같네요. 

현재 상태를 공유 주셔서 감사합니다. 

조훈 드림. 

0

안녕하세요...

음....음.....질문이  좀 많이 ....현재 랩과 좀 많이 멀....먼데용...

일단 주셨고..여름 방학때 쯤에 나올 강의에서 다룰 내용이니 일회적으로 답변은 드릴께요 

제가 아직 AWX는 다루지 않았는데 최근에 쿠버로 포팅을 다시 했다고 들었어요

(뭐...당연히 수순...이죠..제가 강의에서 얘기한 것처럼 모든 인프라는 여기로 들어오고 있거든요)

그리고 보통 그런 제품들은 pv,pvc를 클레임하는 구조가 아니라...storageclass를 만들어서 이 추상된 것을 기반으로 claim할 수 있도록 설계합니다. 왜 그렇게 하냐면...

역시 다음 강의에서 다루겠지만...

쿠버는 컨셉상 

엔지니어(인프라를 만드는 사람) || 개발자(만들어진 인프라에서 새로운 것을 만드는 사람)

으로 구분되거든요 (사실 실제 인프라 환경도 이런 형태를 가져요)

그래서 pv를 생성을 엔지니어가 만들고, pvc를 개발자가 클레임하는게 구조적으로는 맞는데...

pvc를 클레임하려면 또 pv이름을 다 알아야 하거든요 (번거롭겠죠?)

그래서 storageclass를 통해서 동적으로 프로비지닝 해야 합니다. 

관련내용:

https://kubernetes.io/ko/docs/concepts/storage/storage-classes/

https://kubernetes.io/ko/docs/concepts/storage/dynamic-provisioning/

지금은 변경되서 사용법이 좀 다르지만...NFS Provisioner 이걸 보시고 storageclass를 만드셔야 하는 걸로 보여져요 (에러 로그만 봤을때는요)

https://sysnet4admin.blogspot.com/2020/04/k8s-nfs-provisioner.html#.YF_kZWQzY1c

참고가 되셨기를요 

조훈 드림. 

아이고님의 프로필

아이고

질문자

2021.03.28

네..강의 내용이랑 무관해서 답변까지 해주셔서 감사합니다. 강의 수강 목적중의 하나가 awx를 쿠버네스티환경에서 설치하고 싶어서였는데,,알려주신 내용대로 해보겠습니다.감사합니다.

아마 맞으실꺼에요!!!

제가 AWX를 배포한다고 해도 동일하게 할꺼라서요.. 

아마 동적 프로비저닝 스토리지 사용해 보시면 왜 그렇게 쓰는지 알게 되실꺼에요 :) 

참고로 클라우드 사에서는 모두 동적으로 할당해요!

(로드밸런서 최근 녹화 강의에서 얘기한 것처럼 그것도 구현해 둔 부분이랍니다. )

혹시 안되면 logs, event를 좀 올려주시겠어요? 

감사합니다.