Prerequisite Kubernetes 클러스터가 있어야 함 (Kubernetes 클러스터 구성하기 (with. GCP, Ansible, kubeadm) 참고) 관리 Console 서버는 Kubernetes 노드이 속해 있는 네트워크와 같은 네트워크를 사용하는 것을 권장 다른 네트워크를 사용해야만 하는 경우 네트워크 간 Peering 되어 있거나 Site to Site VPN 또는 Proxy 등으로 접근이 가능해야만 함 Ndoe 들의 Public IP 말고 Private IP 에 접근 가능해야 함 GCP 사용 시 별도의 설정이 없었다면 asia-northeast3 의 default VPC 서브넷(10.178.0.0/20) 을 사용하게 됨 gcloud 초기화 gcloud init 환경변수 PROJECT..
윈도우 WSL Ubuntu 환경에서 진행하였습니다. gcloud CLI 설치 (Ubuntu) sudo apt-get install apt-transport-https ca-certificates gnupg # 패키지 소스로 gcloud CLI 배포 URI 추가 echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list # Google Cloud 공개 키를 가져오기 curl https://packages.cloud.google.com/apt/doc/apt-ke..
Minikube Trouble Shooting Minikube 환경에서 Istio 실습을 진행하면서 겪은 에러 발생 상황입니다 문제상황 😫 ErrImagePull 에러 발생 $> kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE grafana-784c89f4cf-9gnjm 1/1 Running 0 5m43s istio-egressgateway-8dff9c778-xfqmt 1/1 Running 0 5m44s istio-ingressgateway-6cfd75fc57-qprqg 1/1 Running 0 5m44s istiod-665965d9c4-hrcc8 1/1 Running 0 5m44s jaeger-7f78b6fb65-9bh99 1/1 Run..
1. kubeconfig 파일 Trouble Shooting kubeconfig 파일은 /root/admin.kubeconfig 에 있음 # 마스터 및 서비스의 주소 표시 $> kubectl cluster-info # kubeconfig 파일 확인 # port 번호가 잘못되어 있음을 확인 !! $> cat admin.kubeconfig # kubeconfig 파일 수정 $> sed -i "s/:2379/:6443/g" admin.kubeconfig 📖참고자료 Organizing Cluster Access Using kubeconfig Files 2. mysql Pod Trouble Shooting dev namespace에 dev-mysql deployment 가 배포되어 있음 dev-mysql depl..
1. Persistent Volume 생성 name: pv-test storage: 100Mi access modes: ReadWriteMany host path: /pv/data-test Solution $> vi pv-test.yaml apiVersion: v1 kind: PersistentVolume metadata: name: pv-test spec: capacity: storage: 100Mi accessModes: - ReadWriteMany hostPath: path: "/pv/data-test" $> kubectl create -f pv-test.yaml 📖참고자료 Configure a Pod to Use a PersistentVolume for Storage 2. emptyDir Volu..
1. messaging application 노출시키는 서비스 생성 name: messaging-service port: 6379 type: ClusterIP Solution $> kubectl expose pod messaging --type=ClusterIP --port=6379 --name=messaging-service 📖참고자료 Using a Service to Expose Your App kubectl-commands (expose) 2. web-dev-app application 노출시키는 서비스 생성 name: web-dev-app-service port: 30082 type: NodePort web-dev-app application 은 8080 port 로 수신 중 Solution # ..
1. 아래와 같은 양식으로 test01 네임스페이스에 있는 모든 deployments 출력 DEPLOYMENT CONTAINER_IMAGE READY_REPLICAS NAMESPACE deployment 이름의 오름차순으로 정렬 결과 값은 /opt/test01_data 에 저장 Solution $> kubectl -n test01 get deployment -o custom-columns=DEPLOYMENT:.metadata.name,CONTAINER_IMAGE:.spec.template.spec.containers[].image,READY_REPLICAS:.status.readyReplicas,NAMESPACE:.metadata.namespace --sort-by=.metadata.name > /opt..
1. kubernetes 버전 업그레이드 (1.17 👉 1.18.0) kubeadm 사용 Master Node와 Worker Node가 각각 1개씩 있음 (Node 수는 총 2개) 업그레이드는 마스터 노드부터 시작하여 한 번에 한 노드 씩 수행되어야 함 다운타임을 최소화하기 위해, 기존에 배포되어 있는 deployment(name : dev-nginx)는 각 노드가 업그레이드 되기 전에 다른 노드로 reschedule 되어야 함 최종적으로 pod 들은 Master Node에 떠 있어야 함 kubernetes 버전 업그레이드는 1단계 씩만 가능함 1.16 👉1.18 : 불가 (1.17로 먼저 업그레이드 해야만 함) 1.17 👉1.18 : 가능 Solution Master Node 작업 $> kubeadm ..