어떻게 노드를 개발하고 디버깅합니까?Kubernetes의 js 응용 프로그램

Kubernetes는 자동화 용기의 배치, 확장, 관리에 사용되는 개원 프로젝트이다.그것은 이미 신속하게 생산 작업 부하를 운행하는 표준이 되었고, 그 주위의 지역사회는 매우 좋다.
그러나 쿠버넷의 토대 위에서 발전하는 데는 도전이 있었다.전형적인 개발 작업 절차는 다음과 같다. 코드 작성, Docker 이미지 구축, 등록표로 전송, 재배치, 변경 검증 및 중복.이 흐름은 속도가 느릴 뿐만 아니라, 우리가 노드의 표준 특성에 이익을 얻는 것도 막는다.js 생태계, 예를 들어 응용 프로그램 열 재부팅 프로그램이나 디버거.
Okteto 이 문제를 해결하기 위해 만들어진 것이다.이 블로그에서 Oketo가 Node의 Kubernetes 개발 체험을 어떻게 개선하는지 보여 드리겠습니다.js 개발자.Kubernetes에서 직접 응용 프로그램을 개발할 때 nodemon, 의존 캐시 또는 IDE 디버거 등의 도구를 충분히 활용할 수 있습니다.

1단계: 노드 배포.js 예시 응용 프로그램


노드의 로컬 버전을 가져옵니다.js 예제 응용 프로그램에서 다음 명령을 실행합니다.
$ git clone https://github.com/okteto/node-getting-started
$ cd node-getting-started
k8s.yml 파일에는 배포 노드에 사용되는 Kubernetes manifests 파일이 포함되어 있습니다.js 예시 응용 프로그램.응용 프로그램을 실행하려면 다음과 같이 하십시오.

You can deploy to your own Kubernetes cluster or give Okteto Cloud a try. Okteto Cloud is a development platform for Kubernetes applications. Sign up today to get a free developer account with 4 CPUs and 8GB of RAM.


$ kubectl apply -f k8s.yml
deployment.apps "hello-world" created
service "hello-world" created
이거 너무 멋있어!명령을 입력하면 프로그램의 개발 버전이 실행됩니다😎.

2단계: Okteto CLI 설치


Okteto CLI는 Kubernetes에서 직접 응용 프로그램을 개발하고 유명한 로컬 도구를 사용할 수 있는 소스 프로젝트입니다.docker 이미지 구축과 용기 재배치를 기반으로 하는 전형적인 개발 작업 흐름을 사용하지 않고 개발 주기를 가속화할 것입니다.
Okteto CLI 설치:

MacOS/Linux


$ curl https://get.okteto.com -sSfL | sh

창문.


다운로드https://downloads.okteto.com/cli/okteto.exe 및 추가$PATH.

3단계:okteto 목록 만들기


노드에서 개발을 시작하다.js 예시 프로그램은 우선okteto 목록을 만들어야 합니다.
노드를 사용합니다.js 예제 응용 프로그램을 배치하고 다음 명령을 실행하여 사용자를 만듭니다.
$ okteto init
This command walks you through creating an okteto manifest.
It only covers the most common items, and tries to guess sensible defaults.
See https://okteto.com/docs/reference/manifest for the official documentation about the okteto manifest.
Use the arrow keys to navigate: ↓ ↑ → ←
Select the deployment you want to develop:
  ▸ hello-world
    Use default values
okteto init 명령은 Kubernetes 네임스페이스에서 사용 가능한 배포를 검색하고 하나를 선택해야 합니다.hello-world 배포를 선택합니다.이것은 우리가 이전 단계에 배치한 것이다.
 ✓  hello-world
 ✓  Deployment 'hello-world' successfully analyzed
 ✓  okteto manifest (okteto.yml) created
 i  Run 'okteto up' to activate your development container
okteto init 명령은 다음 okteto.yml 파일을 만듭니다.
name: hello-world
image: okteto/node:12
command: bash
sync:
  - .:/usr/src/app
forward:
  - 3000:3000
  - 9229:9229
이 파일은 노드의 개발 용기를 활성화하는 방법을 정의합니다.js 예제 응용 프로그램:
  • name: 개발 모드에서 사용하고자 하는 Kubernetes 배포의 이름입니다.
  • image: 그림자 용기에 사용된 이미지.
  • command: 용기를 개발하는 start 명령.
  • sync: 로컬 컴퓨터와 개발 용기 사이의 폴더를 동기화합니다.
  • forward: 개발 용기에서 전송된 포트 목록입니다.
  • 또한 okteto init 명령은 개발 용기와 동기화되지 않는 파일을 표시하기 위해 .stignore 파일을 만듭니다.
    이것은 동기화 바이너리 파일, 구축 부품,git 메타데이터 또는 유사한 node_modules 의존항을 피하는 데 도움이 된다.

    4단계: 개발 용기 활성화


    다음 명령을 실행하여 개발 컨테이너를 활성화합니다.
    $ okteto up
    
     ✓  Development container activated
     ✓  Files synchronized
        Namespace: default
        Name:      hello-world
        Forward:   3000 -> 3000
                   9229 -> 9229
    
    Welcome to your development container. Happy coding!
    default:hello-world app>
    
    개발 용기에서 일하는 것은 현지 기계에서 일하는 것과 같다.
    설치 종속성 시작:
    default:hello-world app> yarn install
    
    yarn install v1.22.4
    [1/4] Resolving packages...
    [2/4] Fetching packages...
    [3/4] Linking dependencies...
    [4/4] Building fresh packages...
    Done in 2.09s.
    
    다음 명령을 실행하여 핫 다시 로드 모드에서 응용 프로그램을 시작합니다.
    default:hello-world app> nodemon index.js
    
    yarn run v1.22.4
    $ nodemon index.js
    [nodemon] 2.0.4
    [nodemon] to restart at any time, enter `rs`
    [nodemon] watching path(s): *.*
    [nodemon] watching extensions: js,mjs,json
    [nodemon] starting `node index.js`
    Starting hello-world server...
    
    Okteo는 로컬 컴퓨터에서 개발 용기로 포트3000를 자동으로 전송하여 localhost를 통해 접근할 수 있도록 합니다.로컬 셸에서 다음 명령을 실행하여 응용 프로그램을 테스트합니다.
    $ curl localhost:3000
    
    Hello world!
    

    5단계: 쿠베르네츠에서 직접 개발


    가장 좋아하는 로컬 IDE에서 index.js 파일을 열고 다섯 번째 줄의 응답 메시지를 그룹에서 온 Hello world로 수정합니다.변경 사항을 저장합니다.
      res.send('Hello world from the cluster!');
    
    Okteo는 변경 사항을 개발 컨테이너에 동기화합니다.
    개발 용기 셸을 보십시오. nodemon 자동 열 재부팅이 어떻게 변경되었는지 주의하십시오.
    [nodemon] restarting due to changes...
    [nodemon] starting `node index.js`
    Starting hello-world server...
    
    로컬 셸에서 다음 명령을 실행하여 응용 프로그램을 테스트합니다.
    $ curl localhost:3000
    
    Hello world from the cluster!
    
    차갑다코드 변경 사항이 Kubernetes에 즉시 적용됩니다.커밋, 구축 또는 푸시 필요 없음😎!

    단계 6: Kubernetes에서 직접 디버깅


    Okteo를 사용하면 가장 좋아하는 IDE 디버깅 응용 프로그램에서 직접 디버깅할 수 있습니다.
    VS 코드에서 어떻게 작동하는지 봅시다. VS 코드는 노드 개발에 사용되는 가장 유행하는 IDE 중 하나입니다.
    완료되지 않으면 노드를 설치합니다.js 확장은 Visual Studio Marketplace에서 사용할 수 있습니다.
    개발 용기 케이스에서 실행을 취소하려면 nodemon index.js 을 누르십시오.
    디버그 모드에서 응용 프로그램을 다시 실행하려면:
    default:hello-world app> node --inspect-brk=0.0.0.0:9229 index.js
    
    Debugger listening on ws://0.0.0.0:9229/73d8d793-b0c3-4310-86ee-3a42938a5df1
    For help, see: https://nodejs.org/en/docs/inspector
    
    디버그 확장을 열고 okteto 디버그 설정에 연결하거나 F5 단축키를 누르십시오.
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Connect to okteto",
                "type": "node",
                "request": "attach",
                "address": "localhost",
                "port": 9229,
                "localRoot": "${workspaceFolder}",
                "remoteRoot": "/usr/src/app",
                "skipFiles": [
                    "<node_internals>/**"
                ]
            },
        ]
    }
    
    5행ctrl + c에 브레이크를 추가합니다.로컬 셸에서 다음 명령을 실행하여 프로그램을 다시 호출합니다.
    $ curl localhost:3000
    
    실행은 중단점에서 중지됩니다.그리고 요청, 사용 가능한 변수 등을 검사할 수 있습니다...

    코드가 Kubernetes에서 실행 중이지만, 추가 서비스나 도구가 필요 없이 로컬 기기에서 상향 조정할 수 있습니다.
    멋있지 않아요?😉

    결론


    Kubernetes는 위대한 개발 플랫폼이 되어 복제할 수 있고 자원이 효율적이며 유사한 생산 환경을 제공할 잠재력이 있다.개발 워크플로우를 만드는 방법Okteto을 보여 드렸습니다. 이 워크플로우는 Kubernetes에서 응용 프로그램을 직접 개발할 때 열을 이용하여 프로그램이나 디버거를 다시 불러오는 기능을 제공합니다.
    저희 website 를 방문하여 Okteo를 사용하여 팀 개발자의 생산력을 향상시키는 방법에 대한 더 많은 정보를 얻으십시오.저희를 따라 #oktetoKubernetes community Slack 채널에 가입하여 저희 지역사회와 당신의 피드백을 공유합니다.

    좋은 웹페이지 즐겨찾기