kubernetes 공부 메모 2(Pod)

소개



kubernetes 공부 노트

이번에는 5 개의 리소스 중 하나가 kubernetes workloads 리소스에 대해

워크로드 리소스



클러스터에서 컨테이너를 시작하는 리소스.

총 8종류의 자원이 있다.
  • Pod
  • Replication Controller
  • Replicaset
  • deployment
  • Daemonset
  • Statefulset
  • Job
  • Cronjob

  • 포드



    kubernetes의 최소 단위 자원.

    포드는 하나 이상의 컨테이너로 구성됩니다. 아래 그림과 같이 pod에 하나의 IP 주소가 할당되어 있기 때문에 컨테이너끼리는 localhost로 통신할 수 있다.



    기본적으로 하나의 컨테이너를 pod로 하는 경우가 많지만. . .

    프록시 역할을 하는 컨테이너, 로컬 캐시 같은 컨테이너 등 2개 이상의 컨테이너를 포함한 pod를 이용할 수도 있다.

    실제로 Pod를 만들어 보자.



    우선은 nginx 컨테이너가 하나 들어서 pod를 만들어 본다.

    manifest 파일은 다음과 같습니다.
    apiVersion: v1
    kind: Pod
    metadata:
      # Podの名前をつける 
      name: container-pod
    spec:
      containers:
      # コンテナの名前をつける
        - name: nginx-container
          image: nginx:latest
          ports:
          - containerPort: 60
    

    로 작성해 본다.
    $ kubectl apply -f pod1.yaml
    

    제대로 포드가 움직이고 있는지 확인하십시오.
    $ kubectl get po -o wide
    ===== 実行結果 ======
    NAME            READY   STATUS    RESTARTS   AGE   IP          NODE             NOMINATED NODE   READINESS GATES
    container-pod   1/1     Running   0          72s   10.1.0.12   docker-desktop   <none>           <none>
    
    

    제대로 움직이고 있는 것을 확인할 수 있었다!

    그런 다음 두 개의 컨테이너가있는 포드를 만듭니다.

    manifest 파일은 다음과 같습니다.
    apiVersion: v1
    kind: Pod
    metadata:
      name: sample-multicontainer
    spec:
      containers:
        - name: nginx-container
          image: nginx:1.13
        - name: redis-container
          image: redis:3.2
    

    로 만들어 보자

    제대로 작성할 수 있었는지 확인해 본다.
    $ kubectl apply -f pod2.yaml
    
    ===== 実行結果 ======
    NAME                    READY   STATUS    RESTARTS   AGE   IP          NODE             NOMINATED NODE   READINESS GATES
    sample-multicontainer   2/2     Running   0          20s   10.1.0.44   docker-desktop   <none>           <none>
    
    

    작성한 pod의 컨테이너(redis)에 들어간다.
    $ kubectl exec -it sample-multicontainer -c redis-container bash
    

    컨테이너 로그를 보려면
    $ kubectl logs sample-multicontainer -c redis-container
    ===== 実行結果 ======
    1:C 06 Jun 10:21:04.146 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
      .-`` .-```.  ```\/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 1
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    1:M 06 Jun 10:21:04.147 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    1:M 06 Jun 10:21:04.147 # Server started, Redis version 3.2.12
    1:M 06 Jun 10:21:04.147 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
    1:M 06 Jun 10:21:04.148 * The server is now ready to accept connections on port 6379
    
    

    요약


  • pod
  • k8s workloads 리소스 중 하나
  • 하나 이상의 컨테이너로 구성됩니다.

  • 컨테이너 안으로 들어가기
  • kubectl exec 명령 사용

  • 컨테이너 로그 보기
  • kubectl logs 명령
  • 오류 조사에 도움이 될 것


  • 참고


  • htps : // / 펑키 t. 이. jp/아리치ぇ/13610
  • 좋은 웹페이지 즐겨찾기