reference (KubeDay Singapore 2023 - Policy driven approach to secure your CI/CDworkflow)
- Cloud-Native CI/CD 써야하는 이유
- Container와 k8s를 위해 설계됨
- pipeline as a service로 운영 부담 없음
- 서로 독립된 파이프라인
- 컨테이너 이미지로서의 라이프사이클을 갖음
- native kubernetes resource 임
- k8s로 관리됨
- configmap을 통해 configuration
- Tekton
- k8s 맞춤형
- 독립된 컨테이너에서 파이프라인 동작하여 on-demand scaling
- k8s RABC 과 security모델은 파이프라인과 워크로드의 보안을 보장
- 세분화된 파이프라인 실행 제어로 유연하고 파워풀한 요구사항 지원
- Tekton Core Concepts
- 기본: fetch task(clone step) -> build task(build step, push step, digest step) -> deploy task(apply step)
- Step
- 볼륨, 환경 변수등과 함께 커맨드를 컨테이너에서 실행
- Task
- Step의 리스트로 순차적으로 동일 파드에서 실행
- Pipeline
- 순서에 따라 input/output 과 실행된 Task들의 그래프
- Input/Output Resource
- task와 pipeline의 input/output
- Task Run
- input/output을 가지고 Task를 호출
- Pipeline Run
- input/output을 가지고 pipeline을 호출
- Pipeline as Code
- pipeline as code 는 gitlab 과 같은 소스제어관리(SCM) 시스템에 위치한 파일에 tekton CI/CD pipeline과 task를 정의할 수 있게 함
- pipeline을 코드로 저장하는것은 코드 변화에 따른 파이프라인 변화의 버저닝, 리뷰, 협업에 유리하며, SCM에서 바로 파이프라인의 상태를 보거나 실행제어할 수 있게 함
- 장점: 버전관리, 재사용성, 협업, 자동화, 확장성, 변화관리
- dependency가 없다. 다 연결할 수 있다는게 PaC의 강점
- pull, push request를 받아서 동작하고 동작상태를 리턴
- 권한이 있는 사람만 파이프라인을 실행할 수 있다는 보안성이 가장 큰 장점
- Tekton Chains
- tekton의 security part로 SLSA level2에 달성하는 변조 방지 형식 처리 by 출처 생성, 저장, 서명
- controller를 통해 taskRuns 완료를 모니터링하여 동작
- ArgoCD
- 깃옵스는 선언적이고, 불변성, 버저닝을 상태 저장을 통해 강제함
- 지속적으로 시스템을 관측하여 원하는 상태가 되도록 소스로부터 상태 정의를 자동으로 pull
- 정책
- 여러정책들.. 코드 품질, 테스트, 보안, 배포, 접근제어, 취약점등등에 대한 정책이 필요
- CI/CD에서도 정책 지원이 필요한데, kyverno, OPA 등이 있음
- Kyverno
- k8s를 위한 Policy engine
- configuration을 검증, 변경, 생성 가능
- OCI image metadata 검사
- cosign signature 확인
- in-toto(전체, as a total or whole) 증명 확인
- namespace 들 전반에 걸쳐 동기화
- 라벨 셀렉터와 와이들카드를 통해 리소스 매칭
- CI
- default namespace를 제외하고 일관되게 생성
- 원할한 실행을 위한 충분한 securityContext 소유
- 서명된 번들만 사용
- 특정 label / annotation으로 트리깅
- CD
- 클러스터 배포전 이미지 검증 보장
- DEMO
- kyverno fetch -> 정적 검사 -> 빌드 -> push -> tekton chain -> kyverno 이미지 검사 -> gitOps -> 배포
- 리뷰 후기
- 요약하려 하였으나, 번역에 가까워졌다. 그만큼 뺄 내용이 많이 없었음. 돌다리도 두드리게됨
- tekton chains 와 kyverno에 대한 필요성 공감. showcase 추가 필요하다
728x90
'CloudNative > event review' 카테고리의 다른 글
| [요약] Handling Billions of Metrics with Prometheus/Thanos (1) | 2024.03.18 |
|---|---|
| [요약] Improve Monitoring and Observability for Kubernetes with OSS tools (0) | 2024.03.06 |
| [요약] Optimising Kafka Consumers with Kubernetes and KEDA:Lessons from the Trenches (0) | 2024.03.05 |
| cloud native 관련 링크 (0) | 2024.01.26 |