반응형

아래 예제처럼 cat 명령과 EOF를 이용해서 파일을 생성할 수 있다.

2가지 방식이 있는데, 외우기 편한 쪽으로 선택해서 사용하면 된다.

(나는 방식 A가 조금 더 편하다.)

 

 

방식 A)

$  cat > example.txt <<-EOF
This is test
This is example
EOF
$

 

방식 B)

$  cat << EOF > example.txt 
This is test
This is example
EOF
$

 

 

반응형

 

요즘 새 프로젝트를 시작하면서, 이전에 설계했던 방식과 다르게 운영 시스템을 만들게 되었다.

참고로, 내가 일하고 있는 분야(Core Network 시스템, IP Network 시스템)는 개발 방식이 20년 전이나 지금이나 크게 변한게 없다.

그래서 기왕에 새로 개발하는 거라면, 요즘 API 트렌드를 공부하고 설계하는 것이 좋겠다는 생각이 들어서 서점에 가서 최근 2년 사이에 출간한 IT 도서를 몇권 구입해서 왔다.

그 중에서 Arnaud Lauret이 쓴 The Design of Web APIs를 읽어보니 API 설계를 쉽게 설명해줘서 재미있게 읽었다.

 

회사에서 API 설계할 일이 있어서, 그 동안 통밥으로 API를 설계/구현한 일이 몇번 있지만, 내가 잘 알고 한 일이 아니라서 항상 협업하는 동료한테 미안한 마음이 있었다.

 

책을 읽고 좀더 API 설계에 대한 기준이 세워진 것 같아서 좋았다.

 

그리고 책 중간 중간에 유용한 도구를 소개해주고 있는데, API 관련 개발 도구 목록도 있어서 메모를 해본다.

 

 

https://OpenAPI.tools

 

 

 

 

 

 

OpenAPI Generator

 

OAS (OpenAPI Specification) 문서를 이용해서 OpenAPI Source Code를 프로그래밍 언어별로 생성해주는 Tool

 

https://openapi-generator.tech/docs/generators/go

 

OpenAPI Generator · Generate clients, servers, and documentation from OpenAPI 2.0/3.x documents

## METADATA

openapi-generator.tech

 

반응형

 

작성일: 2024년 3월 1일

 

Pod 생성 방법 - A

급하게 Pod만 생성해서 Kubernetes 기능을 확인해야 할 경우가 있다.

이럴 때, 아래와 같이 명령 한번 실행해서 Pod를 deploy할 수 있다.

$ kubectl  create  deployment  nginx  --image=nginx

 

또는 아래와 같이  YAML 형식으로 Pod 배포가 가능하다.

 

Pod 생성 방법 - B

$  kubectl  create  namespace  andrew
$  kubectl  apply  -n andrew  -f -  <<EOF

apiVersion: v1
kind: Pod
metadata:
  name: almighty
  labels:
    app: almighty
spec:
  terminationGracePeriodSeconds: 3
  containers:
  - name: almighty
    image: docker.io/andrewloyolajeong/almighty:0.2.4
    
EOF

 

 

[ 참고 ]
docker.io/andrewloyolajeong/almighty 컨테이너 이미지 내부 동작에 대한 설명
    - NGINX 서버 구동 (TCP 80 포트를 Listening)
    - SSHD 서버 구동 (TCP 22 포트를 Listening)
    - Golang으로 구현한 Simple HTTP Server 구동 (TCP 8080 포트를 Listeing)
    - Golang으로 구현한 UDP 서버 구동 (UDP 9090, 9091, 9092 포트를 사용)

 

 

그런 후에 아래와 같이 Service Resource도 만들 수 있다.

 

Service 리소스 생성 방법

$  kubectl  apply  -n andrew  -f -  <<EOF

apiVersion: v1
kind: Service
metadata:
  name: almighty
  annotations:
    ## 아래 nlb 타입은 UDP 패킷을 LB 처리하기 위한 설정이다.
    ## 만약, UDP 패킷을 처리할 일이 없다면, "nlb" 타입을 지정하지 않아도 된다.
    oci.oraclecloud.com/load-balancer-type: "nlb"  ## Oracle Cloud를 사용하는 경우 설정
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local     ## Public Cloud를 사용하는 경우 설정
  selector:
    app: almighty
  ports:
    - name: myweb
      protocol: TCP
      port: 8080
      targetPort: 8080
    - name: yourweb
      protocol: TCP
      port: 1080
      targetPort: 80
    - name: myudp
      protocol: UDP
      port: 9090
      targetPort: 9090
  
EOF

 

PV 생성

진짜 간단하게 PV, PVC 생성에 관해서 작성하려고 했는데 Private Cloud 환경과 Public Cloud 환경에 따라 생성 방법이 다르고,

Public Cloud Infra를 제공하는 회사마다 Manifest 작성 방법이 다 달라서 이 부분은 아래와 같이 해당 Public Cloud Infra의 Web Docs 주소를 남기는 것으로 마무리하겠다.

가장 많이 사용되는 CSI[Cluster Storage Interface] 몇 가지 사례만 사용법을 익히면 될듯하다.

 

Oracle Cloud Infra를 사용한다면, 아래 Web Docs를 읽고 예제를 따라하면 잘 동작한다.

https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengcreatingpersistentvolumeclaim.htm

 

Creating a Persistent Volume Claim (PVC)

When a PVC is created using the CSI volume plugin (provisioner: blockvolume.csi.oraclecloud.com), you can expand the volume size online. By doing so, you make it possible to initially deploy applications with a certain amount of storage, and then subsequen

docs.oracle.com

 

 

 

 

+ Recent posts