k8s 검색 결과

7개 발견
  1. 미리보기
    2019.10.11 - mr.november11

    [k8s] node.js 애플리케이션 쿠버네티스(kubernetes) 클러스터에 디플로이먼트(deployment)로 배포하기

  2. 미리보기
    2019.09.06 - mr.november11

    [k8s] kubespray로 쿠버네티스 설치 후 calico-node 에서 CrashLoopBackOff 에러가 날 경우

  3. 미리보기
    2019.09.06 - mr.november11

    [k8s] kubespray 를 사용한 bare-metal 서버에 쿠버네티스 설치하기

  4. 미리보기
    2019.08.26 - mr.november11

    [K8S] Azure AKS 클러스터에서 helm 차트 사용하기

  5. 미리보기
    2019.08.23 - mr.november11

    [K8S] Azure CLI 로 AKS 클러스터 구성 및 로컬 환경에서 kubectl 로 AKS 클러스터 연결하기

  6. 미리보기
    2019.07.19 - mr.november11

    [k8s] 공개용 Docker Image를 다운로드하여 사설 Registry 로 옮기기

  7. 미리보기
    2019.07.08 - mr.november11

    [k8s] 쿠버네티스 Pod 보안을 위해 root 가 아닌 사용자로 컨테이너 실행하기

[k8s] node.js 애플리케이션 쿠버네티스(kubernetes) 클러스터에 디플로이먼트(deployment)로 배포하기

[k8s] node.js 애플리케이션 쿠버네티스(kubernetes) 클러스터에 디플로이먼트(deployment)로 배포하기

1. node.js 의 express 모듈을 활용하여 웹서버 app. 만들기

  • express 모듈 설치

  • "Hello World"를 응답하는 index.js 파일 만들기

  • web 서버 테스트

2. node.js 애플리케이션용 도커(Docker) 이미지 생성

참고 URL : https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/

  • node.js 애플리케이션용 Dockerfile 생성

  • 도커 이미지 빌드

  • 도커 이미지 조회

  • 도커로 이미지 실행한 후 node.js 애플리케이션 테스트

3. node.js 애플리케이션용 디플로이먼트 및 서비스 오브젝트 생성 후 쿠버네티스 클러스터에 배포하기

  • 디플로이먼트 YAML deployments.yaml

  • 서비스 YAML 생성 services.yaml

  • 디플로이먼트 및 서비스 적용으로 클러스터에 배포

  • 파드 및 서비스 상태 확인

     

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다

<!doctype html>

[k8s] kubespray로 쿠버네티스 설치 후 calico-node 에서 CrashLoopBackOff 에러가 날 경우

  • kubernetes 설치 후 helm list 명령어 실행 시 네트워크 통신 문제가 발생

  • kubectl get pods -A 명령어로 kube 시스템 파드를 점검한 결과 네트워크와 관련된 calico-node 파드가 CrashLoopBackOff 상태였다.

     
     
     
     
  • 파드 노드 로깅 분석 결과 Kernel 의 ip_filter 에서 충돌이 발생했다.

  • 쿠버네티스는 calico 를 사용하기 위해 net.ipv4.conf.all.rp_filter 값을 0이나 1로 설정해야 한다.

     
     
     
     
  • /etc/sysctl.conf 파일에 net.ipv4.conf.all.rp_filter = 1을 추가한 후 sysctl -p 로 커널 파라미터 수정을 반영한다.

  • kubectl get pods -A 명령어로 파드 상태를 재조회하면 정상화됨을 확인할 수 있다.

     
     
     
     

     

     

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다
[k8s] kubespray 를 사용한 bare-metal 서버에 쿠버네티스 설치하기

[k8s] kubespray 를 사용한 bare-metal 서버에 쿠버네티스 설치하기

1. 설치용 서버 사전 설정

  • kubespray를 실행할 mater 에 관련 hosts 정보 추가

  • ssh key 생성

  • ssh key 배포

  • kubespray에서 사용하는 관련 package 설치

    • kubespray는 ansible 기반으로 설치되기 때문에 ansible 과 관련된 package 설치가 필요하다.
  • kubespray 다운로드

     

2. OS 사전 설정

  • Master, Worker 를 포함한 모든 노드에서 실행한다.

    • Swap OFF : 스와핑에 의한 성능 저하를 예방하기 위해 swap 영역을 제거한다.

    • SeLinux 해제 : 대부분의 패키지 설치에서 사전 작업 1순위인 .. Selinux 를 disable 한다.

3. Ansible playbook 실행하여 설치

  • Ansible Inventory 설정

    • Sample 을 복사하여 설치 환경에 맞게 수정한다.
  • ansible playbook 실행으로 kubernetes 설치

     

4. kubectl 로 설치 확인

  • kubectl 설치

    • CentOS 기준으로 아래 명령어를 실행한다.

  • kubectl get ndoes 명령어로 Cluster 노드 확인

     

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다
[K8S] AKS 클러스터에서 helm 차트 사용하기

 

 

[K8S] AKS 클러스터에서 helm 차트 사용하기

Helm(헬름)은 쿠버네티스에서 사용하는 애플리케이션 패키징 시스템이다. (개념상으로 Linux의 yum과 같다.)

1. MAC에 helm 설치

참고 : https://helm.sh/docs/using_helm/#installing-helm

  • brew 명령어로 helm 설치

2. AKS클러스터에 Helm 설정

참고 : https://docs.microsoft.com/ko-kr/azure/aks/kubernetes-helm

  1. AKS 클러스터 내 Helm용 RBAC(역할 기반 접근 제어) 생성

    • helm-rbac.yaml 파일을 생성하고 아래 매니페스트를 입력한다.

    • tiller는 Helm에서 사용하는 서비스 계정을 생성하고 cluster-admin 권한을 부여한다.

    • kubectl apply -f helm-rbac.yaml 명령어를 실행하여 RBAC생성

       

  2. helm 초기화로 클러스터 설정

    • helm init 명령어로 helm에서 사용할 서비스 계정을 초기화한다.

  3. helm 정상 구성 확인

    • helm 이 정상 구성되었는지 확인하기 위해 helm search 명령어로 공개 helm 차트를 검색한다.

    • 현재 클러스터에서 실행중인 helm 차트는 helm list 명령어로 확인한다.

       

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다
[K8S] Azure CLI 로 AKS 클러스터 구성 및 로컬 Mac OS 환경에서 kubectl 연동하기 2

[K8S] Azure CLI 로 AKS 클러스터 구성 및 로컬 환경에서 kubectl 로 AKS 클러스터 연결하기

1. Azure Cli 툴 설치 및 Azure 로그인

참고 : https://docs.microsoft.com/ko-kr/cli/azure/install-azure-cli-macos?view=azure-cli-latest

  1. brew를 사용하여 azure cli 설치

  2. azure cli 에서 Azure 로그인

    • 명령어 실행 시 Azure에 로그인할 수 있는 웹 브라우저가 열린다.

    • 웹 브라우저 로그인에 성공하면 아래와 같으 메시지가 출력된다.

       

2. Azure Cli 명령어로 AKS 클러스터 생성하고 연결하기

참고 : https://docs.microsoft.com/ko-kr/azure/aks/kubernetes-walkthrough

  1. Resource Group 생성

    • AKS 리소스가 배포되고 관리될 논리적 그룹을 생성한다.

    • --location 에는 리소스를 생성한 지역을 선택하며 한국 서울의 경우 koreacentral이다.

  2. AKS 클러스터 생성

    • AKSTEST 리소스 그룹 내 TEST라는 이름의 신규 클러스터를 생성한다.

  1. AKS 클러스터 연결

    • 로컬 환경에 kubectl이 설치되어 있지 않다면 azure cli 로 설치한다.

    • AKS 클러스터 생성이 완료되었다면 로컬 Mac 환경의 kubectl 로 접속 가능하도록 AKS 클러스터에 대한 자격증명을 할당 받는다.

      할당받은 get-credentials 정보는 kubectl 의 context 정보에 추가된다.

    • 로컬 kubectl에서 여러 개의 클러스터에 연결할 경우 kubectl config get-contexts 명령어로 전체 cluster 목록을 확인할 수 있다.

      *로 표시된 context가 현재 연결된 클러스터다.

    • kubectl config use-context 명령어를 사용하여 kubectl 에 현재 연결된 클러스터를 전환할 수 있다.

       

  1. AKS 클러스터 연결 확인

    • kubectl 명령어로 생성된 클러스 관련 정보를 확인한다.

      • Node 상태

      • Namespace 상태

      • Pod 상태

        • AKS에서는 -A 플래그를 추가하면 전체 네임스페이스의 Pod를 조회할 수 있다.

         

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다
[k8s] 공개용 Docker Image를 다운로드하여 사설 Registry 로 옮기기

[k8s] 공개용 Docker Image를 다운로드하여 사설 Registry 로 옮기기

  • docker.elastic.co/beats/metricbeat:7.2.0 이미지를 대상으로 테스트 진행
  1. 외부 통신 가능한 서버에서 docker.elastic.co/beats/metricbeat:7.2.0 이미지를 pull 하기

    • docker image pull <Image 경로> 명령어 사용
  2. docker 이미지를 tar 파일로 저장하기

    • docker save -o <File Name> <Image Name> 명령어 사용

     

  1. 사설 Registry 연동된 사설 서버로 컨테이너 이미지 tar 파일 전송

  2. 사설 서버에서 docker load 명령어로 이미지 tar 불러오기

    • docker load -i <File Name> 명령어로 tar 파일로 만들어진 이미지를 docker 내 image에 불러온다.

       

  1. docker 이미지 태그 변경 후 사설 Registry 에 push 하기

    • docker image tag 명령어로 사설 서버 호스트로 이미지 태그를 변경한다 .

    • 변경된 태그를 기준으로 사설 Registry 에 push 하기

       

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다
[k8s] Pod 보안을 위해 root 가 아닌 사용자로 컨테이너 실행하기

[k8s] 쿠버네티스 Pod 보안을 위해 root 가 아닌 사용자로 컨테이너 실행하기

  • Pod의 Security context에서 runAsUser를 설정하면 컨테이너에서 실행할 사용자를 지정할 수 있다.

  • Pod의 Security context에서 runAsNonRoot를 설정하면 root로 실행하는 컨테이너의 실행을 차단할 수 있다.

    • 차단 시 CreateContainerConfigError 에러와 Error: container has runAsNonRoot and image will run as root 에러 발생

1. runAsUser로 사용자 지정 전

  • pod 설정 yaml 파일
  • 컨테이너 내 프로세스 출력 결과 : 프로세스가 root로 실행 중

2. runAsUser로 사용자 지정 후

  • pod 설정 yaml 파일 : securityContext 내 실행 사용자 2000으로 설정
  • yaml 파일에서 UID 2000 으로 설정 후 프로세스 목록 조회 결과 모든 프로세스가 UID 2000으로 실행된다.
  • 실제 컨테이너 내 UID 2000 이 없어도 문제 없다.

3. runAsNonRoot 으로 root 계정 실행 컨테이너 차단 시

  • 파드 보안 설정에서 runAsNonRoot 을 true로 설정하면 root 를 사용하는 컨테이너의 실행을 차단할 수 있다.

  • pod 설정 yaml 파일 : runAsNonRoot을 true로 설정

  • runAsNonRoot 설정 후 실행 시 "Error: container has runAsNonRoot and image will run as root" 에러가 발생함

  • runAsUser를 일반 사용자로 지정하면 runAsNonRoot가 true 이더라도 문제 없이 실행된다.
  • 이 경우에도 컨테이너를 실행하는 docker 프로세스 자체는 root 계정으로 실행 됨

다른 카테고리의 글 목록

k8s 카테고리의 포스트를 톺아봅니다