티스토리 뷰

 

1탄!! 쿠버네티스 구성준비/Master & Node

2탄!! 쿠버네티스와 컨테이너를 쉽게 이해하기

3탄!! Kubernetes 구성도 알아보자!

4탄!! NFS 설정입니다.

5탄!! helm install 방법

6탄 !! 도커 컴포즈 VS 쿠버네티스 컴포즈

7탄!! 쿠버네티스에 pod 올리자! pod? 뭐에요?

8탄!! K8S 대시보드 설치

9탄!! 쿠버네티스 오토스케일링(kubernetes autoscaling)

10탄!! K8S Namespace 생성방법

11탄!! 쿠버네티스 용어 정리

12탄!! 도커 깔끔히 삭제하기

# 부록!! 쿠버네티스 장애 처리5탄부록!! 쿠버네티스 장애 처리

#기타 참고하기  

마이크로 쿠버네티스 설치 해보기

쿠버네티스(컨테이너) 환경 구축의 어려운점~!

쿠버네티스(튜토리얼 실습)

쿠버네티스 초기설치및  볼트 디비 올리기[샘플]

헬름챠트로 올리기[샘플]11) 쿠버네티스 가상스토리지(Ceph) 설치

 

1. pod 개요

k8s pod 생성K8s Pod 배포쿠버네티스 Pod 생성하기쿠버네티스 Pod 배포하기

1 파드는 무엇인가?
파드 는 (고래 떼(pod of whales)나 콩꼬투리(pea pod)와 마찬가지로) 하나 이상의(도커 컨테이너 같은) 
컨테이너 그룹이다. 이 그룹은 스토리지/네트워크를 공유하고, 해당 컨테이너를 구동하는 방식에 대한 명세를 
갖는다. 파드의 콘텐츠들은 항상 함께 배치되고 같이 스케줄되며, 공유 컨텍스트 내에서 구동된다. 파드는 
애플리케이션에 특화된 "논리 호스트"를 모델로 하고 있다. 이것은 하나 또는 강하게 서로 결합되어 있는 여러 
애플리케이션 컨테이너를 포함한다. 컨테이너 이전의 세상에서 같은 물리적 또는 가상의 머신에서 실행되는 
것은 같은 논리적 호스트에서 실행되고 있는 것을 의미한다.

2. 테스트 방법

  • yaml 파일 작성 후 적용

     testuser@localhost:~$ vi pod-nginx.yaml 

 

1. pod-nginx.yaml 파일을 생성해봅니다.
$vi vi pod-nginx.yaml
아래 내용 삽입

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    
    
2. 적용해보기    
$ kubectl apply -f pod-nginx.yaml
pod/nginx created

3. 확인하기
$ kubectl get pod nginx
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          10s

 

3. 뒷정리(Cleanup)

[root@kuber1m test]#  kubectl delete pod nginx
pod "nginx" deleted

 

 

시작하기 전에

Kubernetes 클러스터가 있어야하며 kubectl 명령 줄 도구가 클러스터와 통신하도록 구성되어야합니다. 

버전을 확인하려면을 입력하십시오 kubectl version.

1. 노드에 레이블 추가

노드 나열 레이블과 함께 클러스터에서 :

kubectl get nodes --show-labels
출력은 다음과 유사합니다.

NAME      STATUS    ROLES    AGE     VERSION        LABELS
worker0   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker0
worker1   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker1
worker2   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker2
노드 중 하나를 선택하고 레이블을 추가하십시오.

kubectl label nodes <your-node-name> disktype=ssd
여기서 <your-node-name>선택한 노드의 이름입니다.

선택한 노드에 disktype=ssd레이블 이 있는지 확인하십시오 .

kubectl get nodes --show-labels
출력은 다음과 유사합니다.

NAME      STATUS    ROLES    AGE     VERSION        LABELS
worker0   Ready     <none>   1d      v1.13.0        ...,disktype=ssd,kubernetes.io/hostname=worker0
worker1   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker1
worker2   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker2
이전 출력에서 worker0노드에 disktype=ssd레이블 이 있음을 알 수 있습니다 .

선택한 노드에 예약 된 포드를 만듭니다.
이 포드 구성 파일은 노드 선택기가있는 포드를 설명합니다 disktype: ssd. 즉, disktype=ssd레이블 이있는 노드에서 포드가 예약됩니다 .

pods/pod-nginx.yaml pods / pod-nginx.yaml을 클립 보드에 복사
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd
구성 파일을 사용하여 선택한 노드에서 스케줄 될 포드를 작성하십시오.

kubectl apply -f https://k8s.io/examples/pods/pod-nginx.yaml
포드가 선택한 노드에서 실행 중인지 확인하십시오.

kubectl get pods --output=wide
출력은 다음과 유사합니다.

NAME     READY     STATUS    RESTARTS   AGE    IP           NODE
nginx    1/1       Running   0          13s    10.200.0.4   worker0
특정 노드에 예약 된 포드 만들기
설정을 통해 특정 노드로 포드를 예약 할 수도 있습니다 nodeName.

pods/pod-nginx-specific-node.yaml pods / pod-nginx-specific-node.yaml을 클립 보드에 복사
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeName: foo-node # schedule pod to specific node
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
구성 파일을 사용하여 예약 foo-node만 되는 포드를 만듭니다 .

무엇 향후 계획
라벨 및 선택기 에 대해 자세히 알아보십시오 .
노드에 대해 자세히 알아보십시오 .
피드백
이 페이지가 도움이 되었나요?
  1. 노드 나열 레이블과 함께 클러스터에서 :

    $kubectl get nodes --show-labels

  1. 최종 목표.
  2. $kubectl get pods -o wide 

 

무엇 향후 계획

 

 

댓글