쿠버네티스를 사용하는 고객사에서 파일을 업로드 할 때 413 Request Entity Too Large 에러가 발생했다. 1MB를 갓 넘기는 파일이라 이게 대체 무슨일인가 보았더니, nginx에서는 업로드하는 파일의 용량을 기본적으로 1MB로 제한하기 때문이었다. 쿠버네티스에서도 ingress에서 설정을 해주지 않으면 nginx와 같은 기본값을 사용한다.Ingress 설정 방법ingress의 proxy-body-size를 설정하는 방법은 아주 간단히 어노테이션을 추가해주면 된다."nginx.ingress.kubernetes.io/proxy-body-size: 허용용량"apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: my-app annota..
쿠버네티스 pod 에서 외부의 서비스에 접근 할 수 있으려면 Service 와 Endpoints를 생성해주어야 한다. Service 와 EndPoints 생성 1. yaml 작성 vi test-svc.yaml --- apiVersion: v1 kind: Service metadata: name: test-mysql #service의 이름을 적어준다 spec: type: ClusterIP ports: - name: mysqldb port: 3306 targetPort: 3306 --- apiVersion: v1 kind: Endpoints metadata: name: test-mysql #service의 이름을 적어준다 subsets: - addresses: - ip: 172.26.10.56 #db서버의 ..
저는 os는 ubuntu22.04 package 관리 툴로는 snap 을 사용했습니다. 본인의 os 와 패키지 관리 툴에 맞는 명령어로 변경해주세요. ⭐⭐ master와 모든 worker 노드에서 실행해줘야 합니다. ⭐⭐ 1. docker 관련 설정 1) docker 설치 (설치 되어있는 경우 생략) sudo apt update sudo snap version #2.61.1 이상이 아닌 경우 docker를 설치 할 수 없음으로 버전 업데이트를 해준다. 1-1) snap version 업데이트 #snap update sudo snap refresh 1-2) docker 설치 sudo snap install docker 1-3) docker 시작 sudo systemctl start snap.docker.d..
master노드와 worker노드를 구축하고 마스터에 직접 접속하지 않고 local에서 kubectl 명령어를 통해 k8s를 사용하려고 했다. master node의 ~/.kube/config를 로컬서버의 ~/.kube/config로 복사를 해주고, 서버 정보를 master node의 public IP로 지정을 해주고 kubectl 명령어를 쳤는데 아래와 같은 에러가 났다. (kubectl 설치 되어있어야합니다!) 잉..? master노드와 같은 네트워크망에 서버를 하나 생성하고 거기에서도 똑같이 했는데 에러가 났다..🤔 근데 이상한건 master node의 public ip가 아니라 private ip로 하니까 정상적으로 실행 되었다. hmmmmm...방화벽의 문제는 아니다.. 왜냐 난 6443을 열어..
minikube는 쿠버네티스 학습과 개발을 용이하게 만든 로컬 쿠버네티스다. 설치 준비 minikube를 설치하기 위해서는 아래와 같은 리소스가 필요하다. - 2 CPUs 이상 - 2GB 의 메모리 - 20GB 이상의 디스크 공간 - 인터넷 - 컨테이너 혹은 virtual machine manager (Docker, Podman, VirtualBox 등등) 설치하기 - 설치하는 방법은 매우 간단하다! 아래의 링크에서 내 PC 환경에 맞게 선택하면 설치 명령어를 제공해준다. https://minikube.sigs.k8s.io/docs/start/ minikube start minikube is local Kubernetes minikube.sigs.k8s.io 나는 macOs에 homebrew로 다운로드 ..
docker hub와 같은 public 저장소에 docker image를 저장하지 못하는 경우가 있다. 대부분 사설 저장소를 사용하겠지만...나는 로컬이미지를 사용하고 싶었다. 이럴 때는 로컬 이미지를 tar 파일로 변환하여 컨테이너를 실행 시킬 서버에서 tar 파일을 다시 image로 변경한다. docker image -> tar 변경- 예시에서는 test:0.1 이미지를 test-0.1.tar 파일로 저장한다.$ docker save -o [파일명] [이미지명]예) docker save -o C:\Users\injeong\Desktop\test-0.1.tar test:0.1tar -> docker image 변경$ docker load -i [파일명]예) docker load -i /home/ubun..
서버 준비 - 나는 가상서버로 준비했다 - CPU는 2 cores, memory는 2GB 이상으로 준비해야 한다 hostname ip roles k8s-master 192.168.0.40 control-plane k8s-node1 192.168.0.41 worker k8s-node2 192.168.0.42 worker CentOS 설정 1) selinux 비활성화 # setenforce 0 # sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config 2) swap 비활성화 # swapoff -a # sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 3) 방화벽 비활성화 - 방화벽의 경우 필요한 포트만 오..
1️⃣ 도커 이미지 생성 1) jar 파일 생성 - 각자의 환경에 맞게 jar 파일을 build 해주면 된다. 나의 경우엔 gradle 프로젝트로 아래와 같이 build 하여 jar 파일을 생성했다. ( 프로젝트폴더/build/libs 폴더에 jar 파일 생성) gradle bootJar 2) Dockerfile 작성 - jar 파일 위치를 잡아주어야겠지만 그냥 / 하위에 옮겼다 FROM adoptopenjdk/openjdk11 #기본이미지 EXPOSE 9005 #어플리케이션이 실행 될 포트 ADD build/libs/test-0.0.1-SNAPSHOT.jar /test.jar #jar 파일 복사 ADD 호스트 위치 도커위치 적어준다. ENTRYPOINT ["java", "-jar", "/test.jar..
- Total
- Today
- Yesterday
- tomcat
- java 코테
- javascript
- 현대코테
- springboot
- softeer java
- react
- 현대
- Spring
- java
- 아파치카프카
- Linux
- Kubernetes
- centos
- 코딩테스트
- 전자정부프레임워크
- 도커
- 톰캣
- 코테
- mysql
- 리액트
- 오토에버코테
- 현대오토에버
- 스프링
- 쿠버네티스
- softeer
- Docker
- 자바스크립트
- 자바
- 자바코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |