3.5.2. 노드 인스턴스에서 연결


노드의 SDN 연결 포드 통신에는 기본적으로 UDP 포트 4789를 사용합니다.

노드 호스트 기능을 확인하려면 새 애플리케이션을 생성하십시오. 다음 예제에서는 노드가 인프라 노드에서 실행중인 컨테이너 이미지 레지스트리에 도달하는지 확인합니다.

프로시저
  1. 새 프로젝트를 생성합니다.

    $ oc new-project sdn-test
  2. 다음과 같이 httpd 애플리케이션을 배포하십시오.

    $ oc new-app centos/httpd-24-centos7~https://github.com/sclorg/httpd-ex

    빌드가 완료될 때까지 기다려 주십시오.

    $ oc get pods
    NAME               READY     STATUS      RESTARTS   AGE
    httpd-ex-1-205hz   1/1       Running     0          34s
    httpd-ex-1-build   0/1       Completed   0          1m
  3. 실행 중인 포드에 연결하십시오.

    $ oc rsh po/<pod-name>

    예를 들면 다음과 같습니다.

    $ oc rsh po/httpd-ex-1-205hz
  4. 내부 레지스트리 서비스의 healthz 경로를 확인하십시오.

    $ curl -kv https://docker-registry.default.svc.cluster.local:5000/healthz
    * About to connect() to docker-registry.default.svc.cluster.locl port 5000 (#0)
    *   Trying 172.30.150.7...
    * Connected to docker-registry.default.svc.cluster.local (172.30.150.7) port 5000 (#0)
    * Initializing NSS with certpath: sql:/etc/pki/nssdb
    * skipping SSL peer certificate verification
    * SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    * Server certificate:
    * 	subject: CN=172.30.150.7
    * 	start date: Nov 30 17:21:51 2017 GMT
    * 	expire date: Nov 30 17:21:52 2019 GMT
    * 	common name: 172.30.150.7
    * 	issuer: CN=openshift-signer@1512059618
    > GET /healthz HTTP/1.1
    > User-Agent: curl/7.29.0
    > Host: docker-registry.default.svc.cluster.local:5000
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Cache-Control: no-cache
    < Date: Mon, 04 Dec 2017 16:26:49 GMT
    < Content-Length: 0
    < Content-Type: text/plain; charset=utf-8
    <
    * Connection #0 to host docker-registry.default.svc.cluster.local left intact
    
    sh-4.2$ *exit*

    HTTP/1.1 200 OK 응답이 표시되면 노드가 올바르게 연결되는 것입니다.

  5. 다음과 같이 테스트 프로젝트를 정리하십시오.

    $ oc delete project sdn-test
    project "sdn-test" deleted
  6. 노드 호스트가 TCP 포트 10250에서 청취 중입니다. 임의 노드의 모든 마스터 호스트에서 이 포트에 접근할 수 있어야 하며, 클러스터에 모니터링을 배포한 경우 인프라 노드는 모든 인스턴스에서 이 포트에 액세스할 수 있어야 합니다. 다음 명령을 사용하여 이 포트에서 중단된 통신을 탐지할 수 있습니다.

    $ oc get nodes
    NAME                  STATUS                     AGE       VERSION
    ocp-infra-node-1clj   Ready                      4d        v1.6.1+5115d708d7
    ocp-infra-node-86qr   Ready                      4d        v1.6.1+5115d708d7
    ocp-infra-node-g8qw   Ready                      4d        v1.6.1+5115d708d7
    ocp-master-94zd       Ready,SchedulingDisabled   4d        v1.6.1+5115d708d7
    ocp-master-gjkm       Ready,SchedulingDisabled   4d        v1.6.1+5115d708d7
    ocp-master-wc8w       Ready,SchedulingDisabled   4d        v1.6.1+5115d708d7
    ocp-node-c5dg         Ready                      4d        v1.6.1+5115d708d7
    ocp-node-ghxn         Ready                      4d        v1.6.1+5115d708d7
    ocp-node-w135         NotReady                   4d        v1.6.1+5115d708d7

    위 출력에서 NotReady 상태로 표시되었듯이 마스터 서비스는 ocp-node-w135 노드의 노드 서비스에 접근할 수 없습니다.

  7. 마지막 서비스는 라우터이며 OpenShift Container Platform 클러스터에서 실행 중인 올바른 서비스로 연결을 라우팅해야 합니다. 라우터에서는 인프라 노드의 TCP 포트 80443에서 들어오는 트래픽을 청취합니다. 먼저 DNS를 구성해야 라우터가 작동하기 시작합니다.

    $ dig *.apps.example.com
    
    ; <<>> DiG 9.11.1-P3-RedHat-9.11.1-8.P3.fc27 <<>> *.apps.example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45790
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;*.apps.example.com.	IN	A
    
    ;; ANSWER SECTION:
    *.apps.example.com. 3571	IN	CNAME	apps.example.com.
    apps.example.com.	3561	IN	A	35.xx.xx.92
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Tue Dec 05 16:03:52 CET 2017
    ;; MSG SIZE  rcvd: 105

    IP 주소(이 경우 35.xx.xx.92)는 들어오는 트래픽을 모든 인프라 노드에 배분하는 로드 밸런서를 가리켜야 합니다. 라우터의 기능을 확인하려면 이번에는 클러스터 외부에서 레지스트리 서비스를 한 번 더 확인하십시오.

    $ curl -kv https://docker-registry-default.apps.example.com/healthz
    *   Trying 35.xx.xx.92...
    * TCP_NODELAY set
    * Connected to docker-registry-default.apps.example.com (35.xx.xx.92) port 443 (#0)
    ...
    < HTTP/2 200
    < cache-control: no-cache
    < content-type: text/plain; charset=utf-8
    < content-length: 0
    < date: Tue, 05 Dec 2017 15:13:27 GMT
    <
    * Connection #0 to host docker-registry-default.apps.example.com left intact
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.