PaaS/Kubernetes 85

Ingress에서 Rewrite Target 사용하기

context path를 변경하여 서버에 라우팅을 할때는 다음과 같이 Ingress를 정의해야한다. metadata.annotations.nginx.ingress.kubernetes.io/rewrite-target rewrite-target은 nginx의 Annotation중의 하나이다. ingress에 정의된 경로로들어온 요청을 호출경로를 재정의 하는것이다. 예를들어 http://test.armyost.com/api/test1/insertUserdata.do 를 아래의 정책으로 rewrite하면 ingress를 지나 서버에서는 http://test.armyost.com/insertUserdata.do 로 전달됩니다. apiVersion: networking.k8s.io/v1 kind: Ingress m..

PaaS/Kubernetes 2023.11.09

운영환경에 활용하기 좋은 k8s 리소스 YAML

Deployment with HPA # DEPOLOYMENT apiVersion: apps/v1 kind: Deployment metadata: # Deployment object 자신의 고유 정보 name: ${APP_NAME} # Deployment object에 대한 Unique-key spec: replicas: ${REPLICA_QUANTITY} # 초기 Pod의 개수를 설정 minReadySeconds: 10 # Pod이 Ready 단계가 된 후, Available 단계가 될 때 까지의 시간 차이 revisionHistoryLimit: 2 # replicaset 이전버전 보관수 strategy: type: RollingUpdate # RollingUpdate에 대한 상세 설정. “Recreat..

PaaS/Kubernetes 2023.11.09

OIDC 인증으로 특정 Service Account에 대해 Kubelet API 호출하기

Kubernetes의 각 노드는 모두 API로 통신한다. 이를 활용하여 CI/CD 파이프라인이나, 어플리케이션에서 k8s자원에 대한 쿼리를 API로 하면 손쉽고 보안이 좋다. 이전 포스팅의 연장선에서 진행하겠다. https://armyost.tistory.com/417 k8s 보안, 최소권한으로 특정 NameSpace에 대한 권한만 부여하기 Zero Trust가 유행함에 따라서 모든 영역이 보안의 영역이 되었다. 과거에는 k8s Cluster Wide한 권한을 편의상 사용해왔는데, 점점 보안이 강화되는 분위기라 Service Account와 Role에 대한 이해도가 필요 armyost.tistory.com 우선 현재 Kubelet에서 통용되는 CA 인증서를 내려 받자 $ kubectl config vie..

PaaS/Kubernetes 2023.11.08

k8s 보안, 최소권한으로 특정 NameSpace에 대한 권한만 부여하기

Zero Trust가 유행함에 따라서 모든 영역이 보안의 영역이 되었다. 과거에는 k8s Cluster Wide한 권한을 편의상 사용해왔는데, 점점 보안이 강화되는 분위기라 Service Account와 Role에 대한 이해도가 필요해졌다. 아래 샘플은 특정 NameSpace의 특정 자원에 대해서만 CRUD가 가능한 권한을 매핑한 YAML이다. apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: creationTimestamp: null name: sample-role namespace: sample-ns rules: - apiGroups: - "" resources: - services - deployments - pods verbs: - ge..

PaaS/Kubernetes 2023.11.08

GCP가 말하는 Kubernetes를 GCP에서 운영해야 하는 이유

원문 : https://cloud.google.com/blog/products/containers-kubernetes/why-choose-gke-as-your-kubernetes-service?hl=en Why choose GKE as your Kubernetes service | Google Cloud Blog Google's contributions to Kubernetes have helped make Google Kubernetes Engine (GKE) more robust, scalable, secure, and reliable. cloud.google.com 고객은 다양한 이유로 GKE를 사용하여 미션 크리티컬 애플리케이션을 실행합니다. Kubernetes를 만든 팀보다 환경을 더 잘 운영하..

PaaS/Kubernetes 2023.11.03

Kubernetes "Container runtime network not ready" 오류 발생시

master01 kubelet[912]: E1031 23:57:51.650427 912 kubelet.go:2855] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network 위오류로 Controlplain이 Ready상태로 안올라오면 $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml $ sudo systemctl restart kubelet 이렇게 하면 해결된다.

PaaS/Kubernetes 2023.11.01

kubernetes-dashboard용 Service Account를 만들자

Kubernetes 권한관리는 기본적으로 RBAC로 Service Account에 따라서 정보노출이 다르다. Kubernetes 엔진 버전이 올라갈 수록 과거에 쉽게 접근하였던 cluster-admin 권한이 수동적으로 바뀌는것 같다. 따라서 cluster admin 권한의 계정을 만들고 이것으로 kubernetes-dashboard를 들어가자 우선 ServiceAccount, ClusterRoleBinding, Secret 리소스를 만들자 apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system secrets: - name: admin-user-secret --- apiVersion: rbac.authori..

PaaS/Kubernetes 2022.12.23

Kubespray로 Kubernetes 설치하기 (CentOS7)

예시 호스트명 및 IP k8s-m : 192.168.122.15 k8s-s : 192.168.122.16 설치 OS CentOS 7버전 사전 요구사항 확인 kubespray 는 버전별로 사전 requirements가 조금씩은 다르다. 공식 Github 혹은 웹사이트에서 확인을 해야한다. https://github.com/kubernetes-sigs/kubespray#requirements GitHub - kubernetes-sigs/kubespray: Deploy a Production Ready Kubernetes Cluster Deploy a Production Ready Kubernetes Cluster. Contribute to kubernetes-sigs/kubespray development ..

PaaS/Kubernetes 2022.12.14

(네이버클라우드 세션) 쿠버네티스 보안 세미나 요약

NIST SP 800-190 (National Institution of Standards and Technology Special Publication) 에서 발표한 Application Container Security Guide 이미지에 대한 위험 이미지 취약점 이미지 설정 결함 악성코드 포함 평문으로 저장된 secret 신뢰할 수 없는 이미지 사용 → 해결방안 이미지 취약점 스캔 - 이미지 스캐닝 툴 사용 - 쿠버네티스 admission controller를 사용하여 파드 스케줄링 전 스캔되지 않은 이미지가 배포되지 않도록 설정 레지스트리에 대한 위험 레지스트리에 대한 안전하지 않은 연결 레지스트리의 노후된 이미지 불충분한 인증 및 인가 → 해결방안 신뢰할 수 있는 컨테이너 레지스트리 사용 - 신..

PaaS/Kubernetes 2022.08.28