kubernetes33 istio envoy access log istio envoy access log # istio 를 설치한 경우 -> istio-system 네임스페이스에 Telemetry 를 생성하는 경우 전역적으로 envoy 액세스 로그가 활성화됨 -> 개별 네임스페이스에 생성하면 해당 네임스페이스만 envoy 액세스 로그가 활성화됨 https://istio.io/latest/docs/tasks/observability/logs/access-log/ vim istio-access-log.yaml apiVersion: telemetry.istio.io/v1alpha1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: accessLogging: - providers: - nam.. 2023. 3. 8. istio 배포 istio 배포 공식 가이드 https://istio.io/latest/docs/setup/getting-started/ # 설치 ## istioctl 로 설치 https://istio.io/latest/docs/setup/install/istioctl/ curl -L https://istio.io/downloadIstio | sh - cd istio-* export PATH=$PWD/bin:$PATH istioctl install --set profile=demo -y 배포된 istio 관련 리소스 확인 kubectl get all -n istio-system 설치된 istio profile 확인 https://istio.io/latest/docs/setup/additional-setup/config-.. 2023. 3. 8. argo-rollouts argo-rollouts 공식 가이드 https://argoproj.github.io/argo-rollouts/ 공식 깃허브 https://github.com/argoproj/argo-rollouts 퀵스타트 가이드 https://github.com/argoproj/argo-rollouts/blob/master/docs/getting-started.md helm chart github https://github.com/argoproj/argo-helm # 배포 kubectl create namespace argo-rollouts kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/downloa.. 2023. 3. 7. k8s cert-manager k8s cert-manager https://cert-manager.io/docs/tutorials/getting-started-with-cert-manager-on-google-kubernetes-engine-using-lets-encrypt-for-ingress-ssl/ # 도메인 레코드 세팅 example.com 도메인의 레코드를 gcp lb 의 퍼블릭 아이피(34.111.226.147)로 세팅 # ingress 생성 vim ingress-http.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: istio-ingressgateway namespace: istio-system spec: rules: - http: paths: -.. 2023. 3. 7. k8s 외부 etcd 클러스터 구성 k8s 외부 etcd 클러스터 구성 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/ # k8s HA 구성의 두 가지 옵션 ## stacked etcd -> etcd 가 포함된 마스터노드를 다중으로 구성하여 HA 구성 구성이 간편하지만 마스터노드의 수가 늘어남에 따라 etcd 포드도 늘어나는 특징 마스터노드에 etcd 가 포함되어 있기 때문에 마스터노드에 부하 발생 시 etcd 에도 영향 ## external etcd -> 마스터노드 외부에 별도의 etcd 를 구성하여 HA 구성 마스터노드 HA 구성 + etcd HA 구성으로 더 많은 수의 노드가 필요함 마스터노드와 etcd 가 .. 2023. 3. 7. k8s 마스터노드 HA 구성 k8s 마스터노드 HA 구성 참고 URL https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ 마스터노드를 3대로 HA 구성(Stacked control plane, Stacked etcd) 외부 etcd를 구성하지 않는 이상 기본적으로 마스터노드에 etcd가 포함되어 있기 때문에 RAFT 알고리즘으로 인해 마스터노드(etcd)는 홀수로 구성해야함 (RAFT 알고리즘이란 리더와 팔로워의 관계를 통해 다중화된 데이터의 정확성을 높이는 방식으로 redis, etcd에서 사용하는 방식입니다. RAFT 알고리즘에 대해 더 이해하시고자하는 경우 http://thesecretlivesofdata.com/raft.. 2023. 3. 7. Kubernetes Secrets Store CSI Driver Kubernetes Secrets Store CSI Driver -> k8s CSI(Container Storage Interface) 볼륨을 통해 secrets stores 와 k8s 를 통합하는 플러그인 -> secrets stores 의 시크릿을 k8s secret 으로 동기화도 가능(반드시 파드에 볼륨으로 마운트를 해줘야 sercet 리소스가 생성됨) # gcp secret manager 와 gke 클러스터를 통합하여 사용 가능 https://cloud.google.com/secret-manager/docs/using-other-products#google-kubernetes-engine # 설치 https://secrets-store-csi-driver.sigs.k8s.io/getting-sta.. 2023. 3. 7. k8s pv 마이그레이션 https://github.com/utkuozdemir/pv-migrate # 설치 kubectl krew update kubectl krew install pv-migrate # 마이그레이션 ## 동일 네임스페이스 간 마이그레이션 kubectl pv-migrate migrate old-pvc new-pvc rsync --delete 플래그 추가 kubectl pv-migrate migrate --dest-delete-extraneous-files old-pvc new-pvc 파드에 마운트 중이어도 무시하고 sync 진행 kubectl pv-migrate migrate --ignore-mounted old-pvc new-pvc ## 네임스페이스 간 마이그레이션 kubectl pv-migrate migra.. 2023. 3. 7. pod에서 kube api 액세스 pod에서 kube api 액세스 https://kubernetes.io/docs/tasks/run-application/access-api-from-pod/ https://kubernetes.io/docs/reference/using-api/api-concepts/ # role, rolebinding, serviceaccount 정의 vim role-test.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: role-test namespace: sample-rollout rules: - apiGroups: - "" resources: - pods verbs: - get - list --- apiVersion: rbac.au.. 2023. 3. 7. 이전 1 2 3 4 다음