DevOps/K8s
-
[쿠버네티스] MySQL + 스프링 부트 연동DevOps/K8s 2023. 11. 14. 09:23
MySQL 생성 1. NFS 설정 서버와 클라이언트에 패키지를 설치했다는 가정하에 진행이 된다. vi /etc/exports # 디렉토리와 아이피 지정 # 하단에 추가할 디렉토리 지정 ( *부분에 아이피를 특정하거나 *로 전체 열어둘 수 있다, 그 뒤에는 권한 설정 관련) /mnt/shared/tp-back-app-mysql *(ro,rw,sync,no_root_squash) 또한 쓰기 권한을 주기 위해서 chmod 777을 부여 sudo chmod 777 /mnt/shared/tp-back-app-mysql # 서비스 재시작 service nfs restart # 목록 확인 exportfs -v 1. PV 생성 nfs는 이미 설정을 해놓았기때문에 pv,pvc를 생성한다. apiVersion: v1 ki..
-
[쿠버네티스] kubectl 명령어 에러 error: client-key-data or client-key must be specified for kubernetes-admin to use the clientCert authentication method.DevOps/K8s 2023. 10. 29. 20:31
~/.kube/config 값이 control plane의 ~/.kube/config와 일치하는지 다시 확인한다. 저는 복사하는 과정에서 잘 못 복사 되어 발생한 에러 였습니다. cat 으로 전체 확인하거나 vim으로 복사한 후 로컬에서 재확인후 명령어 재실행
-
[쿠버네티스] 노드 join 에러 로그 accepts at most 1 arg(s), received 4To see the stack trace of this error execute with --v=5 or higherDevOps/K8s 2023. 10. 29. 20:30
1. 에러 발생 상황 마스터 노드나 워커 노드 join시 에러가 발생하였다. kubeadm join lb.example.com:6443 --token xm5htb.d0oqlfaqkmnxnc2l \ --discovery-token-ca-cert-hash sha256:0801ca09a7f7e2fdd3d7e75a8cd26e77aaee7ebe53ae57c9bba973b82204410d \ --control-plane --certificate-key d5dfc559da2b964af8abdb518dc2481ff5efdd04343e54625eb530c8b2d57530 터미널에 그대로 복사한 명령어지만 붙여넣는 과정에서 줄바꿈에 string 파일의 인자를 제대로 구분하지 못한 에러이다. 2. 해결 방안 줄바꿈을 없애고..
-
[쿠버네티스] 에러 로그 ClusterRole "ingress-nginx" in namespace "" exists ...DevOps/K8s 2023. 10. 29. 19:35
1. 에러 로그 2. 해결 방안 이미 존재하는 정보로 helm 설치가 안되는 경우 기본정보를 조회하여 제거해야한다. # clusterrole조회 kubectl get clusterrole # clusterrole 삭제 kubectl delete clusterrole nginx-ingress kubectl delete clusterrole ingress-nginx-admission # ingressclass 조회 kubectl get ingressclass --all-namespaces # ingressclass 삭제 kubectl delete ingressclass nginx --all-namespaces
-
[쿠버네티스] 로컬에서 클러스터 관리DevOps/K8s 2023. 10. 29. 19:14
1. 클러스터 생성 ( 존재 시 스킵 ) https://heehee-myblog.tistory.com/34 K8S HA(멀티 마스터 노드) 구성하기 HA (High Availability) 고가용성 기존의 마스터 노드를 한개로 두었을때 마스터 노드가 다운되었을때 전체 시스템의 장애가 발생하기때문에 이를 방지하고자 마스터노드를 여러대로 두어 가용자원 heehee-myblog.tistory.com 2. kubectl 설치 노드에 원격 접속하지않아도 로컬 pc 노드에 명령을 전달할 수 있다. 공식문서 https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-binary-with-curl-on-linux Install and Se..
-
K8S 기본 개념 && 기본 명령어DevOps/K8s 2023. 10. 21. 18:01
기본적인 쿠버네티스 동작 흐름 마스터 컴포넌트 etcd key-value 타입의 저장소 kube-apiserver k8s API를 사용하도록 요청을 받고 요청이 유효한지 검사 kube-scheduler 파드를 실행할 노드 선택 kube-controller-manager 파드를 관찰하며 개수를 보장 kubeproxy 각 노드에 존재하며 서비스를 생성 시 iptable룰을 설정하여 nat을 수행한다. 워커 노드 컴포넌트 kubelet 각 노드별로 존재하며 파드의 컨테이너 상태를 추적하고, 오류가 발생하면 정상 상태로 만들기 위한 조치로 컨테이너를 재시작한다. 마스터 노드와는 API Server를 통해서 통신하며 파드가 스케줄된다. kube-proxy k8s의 network 동작을 관리, iptables ru..
-
K8S HA(멀티 마스터 노드) 구성하기DevOps/K8s 2023. 10. 16. 01:31
HA (High Availability) 고가용성 기존의 마스터 노드를 한개로 두었을때 마스터 노드가 다운되었을때 전체 시스템의 장애가 발생하기때문에 이를 방지하고자 마스터노드를 여러대로 두어 가용자원을 높인다. 1. VM으로 노드 구성 하기 (물리적으로 컴퓨터를 6대 구매하여 자원을 격리하는 형태는 비용이 많이 들기때문에 아래와 같이 가상머신을 통해서 자원을 격리한다) 현재 서버의 스펙이 10코어 20스레드이며 램은 64GB 스레드를 기준으로 cpus를 배정했다. 마스터 3대 마스터 노드에는 컨테이너(어플리케이션)를 배정하지 않을 예정이기 때문에 자원을 적게 잡았다 multipass launch focal --name master-node1 --cpus 2 --memory 6G --disk 50G mu..