2017-03-23 9 views
3

다른 컨테이너에서 PersistentVolume을 통해 액세스하려는 NFS 서버를 실행하는 포드를 정의하는 Google 컨테이너 엔진에서 실행중인 kubernetes 클러스터가 있습니다.DNS 또는 정적 ClusterIP를 통해 PersistentVolume 용 NFS 서버 구성

동일한 클러스터에 NFS 서비스를 구성하는 가장 좋은 방법은 무엇입니까?

kubernetes 포드를 시작하는 노드가이를 DNS로 사용하도록 구성되지 않았으므로 다양한 설명서에 따르면 kube-dns에 의존 할 수 없다는 것이 발견되었습니다.

그래서이 (작동하지 않는 정말하고 - 필자는 여러 다른 호스트 이름/FQDN과 함께, 그것을 테스트 ...) 질문 벗어

apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: xxx-persistent-storage 
    labels: 
    app: xxx 
spec: 
    capacity: 
    storage: 10Gi 
    nfs: 
    path: "/exports/xxx" 
    server: nfs-service.default.svc.cluster.local # <-- does not work 

나는 NFS 서버를 시작하고 kubectl describe svc nfs-service를 통해 자사의 ClusterIP를 확인하실 수 있습니다 다음 PV에 대한 엔드 포인트-IP (이 작품) 하드 코딩 :

apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: xxx-persistent-storage 
    labels: 
    app: xxx 
spec: 
    capacity: 
    storage: 10Gi 
    nfs: 
    path: "/exports/xxx" 
    server: 10.2.1.7 # <-- does work 

을하지만 이것은 잘못된 느낀다 - 최대한 빨리이 NFS 서비스 병이 새로운 IP를 얻을 다시 필요로하고 나는 모두를 다시 구성해야 그것들에 기초한 PVs.

  • 가장 좋은 방법은 무엇입니까? 나는 그것을하기위한 상당히 정상적인 일이라고 생각하기 때문에 나는 그것을위한 모범을 발견하지 못했다고 놀랬다.

  • NFS 서비스에 대해 항상 동일한 IP를 사용하도록 서비스의 고정 IP를 설정할 수 있습니까?

답변

2

올바른 길을 가고 있습니다. 서비스가 고정 IP를 사용하는지 확인하려면 서비스의 spec: 섹션 아래에 clusterIP: 1.2.3.3을 추가하면됩니다. 정규 example에서

: 앞으로

, 우리는 서비스 이름을 사용하여 함께이 넥타이 할 수 있습니다,하지만 지금, 당신은 IP를 하드 코딩해야합니다.

+0

고마워요. 제가 잘못을 저 지르고 더 좋은 해결책을 찾고 싶었습니다. hardcoded IP의 아이디어와 같은, 만약 내가 쉽게 예제와 – DanielW

+0

을 찌르다와 테스트 사이의 정의 파일을 재사용하고 싶지 않다 솔루션을 좋아하지 않아. DNS 이름이 정말 좋을 것 같습니다 ... –