출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

다음의 Qwiklabs 과정을 거치면서 모르던 내용들 그리고 배웠던 내용들에 대해 써보았다:

  • Continuous Delivery with Jenkins in Kubernetes Engine

우선, 저 과정을 거치면서 모르거나 새로 배운 내용들에 대한 정의를 써보도록 하겠다. 나름 나의 해석?도 들어가 있는 것이라 정확하지는 않을 수도 있으나, 최대한 찾아본 내용을 토대로 썼다:

  • Jenkins: The go-to automation server used by developers who frequently integrate their code in a shared repository. An open source automation server that lets you flexibly orchestrate your build, test and deployment pipelines → Github 같은 것으로 이해함
  • Ephemeral Build Executors: Executor allowing each build to run in a clean environment that's identical to the builds before it
  • SSL: Secure Sockets Layer의 약자. Standard technology for keeping an internet connection secure and safeguarding any sensitive data that is being sent between two systems.
  • SSL termination: Describes the transition process when data traffic becomes encrypted and unencrypted
  • Helm: The package manager for Kubernetes. Helm Charts help you define, install and upgrade even the most complex Kubernetes application. A chart is a collection of files that describe a related set of Kubernetes resources
  • Cluster Role Binding: RoleBinding is used for granting permission to a subject in a Kubernetes cluster and ClusterRoleBinding grants that access cluster-wide
  • Continuous Deployment Pipeline (CD Pipeline): An implementation of the continuous paradigm, where automated builds, tests and deployments are orchestrated as one release workflow
  • Kubernetes Plugin: A framework that can be used to advertise system hardware resources to the Kubelet. Instead of customizing the code for Kubernetes itself, vendors can implement a device plugin.
  • Kubelet: The primary "node agen" that runs on each node. Responsible for maintaing a set of pods. Watches for pod specs via the Kubernetes API server.
  • Jenkinsfile: A text file that contains the definition of Jenkins Pipeline and is check into source control
  • Jenkins Pipeline: A suite of plugins which supports implementing and integrating continuous delivery pipelines to Jenkins
  • Pipeline: A set of data processing elements connected in series, where the output of one elements is the input of the next one.
  • Jenkins Jobs: Jobs는 Jenkins에서 실행하는 가장 기본적인 단위이며, Jobs들이 모여 CI (continuous integration)를 구성하게 된다.

Jenkins in Kubernetes의 Structure은 다음과 같다:

Jenkins in Kubernetes - 출처: <https://www.qwiklabs.com/focuses/1104?parent=catalog>

 

마지막 문제 답:

출처:<https://www.qwiklabs.com/focuses/1104?parent=catalog>

1번 같은 경우, gcloud shell 에 kubectl get namespace라고 치면 된다. 그러면 다음과 같이 출력된다:

여기서 kube-system / production / default는 있으므로 3개를 선택하면 된다.

 

2번의 경우, True이다. 

 

결론:

 

이번 qwiklabs quest를 하면서 Jenkins Job를 만들때 문제가 생겼었다. 무슨 문제인지 설정이 잘못되어 qwiklabs에서 지시한 sample-app인 Jenkins Job가 잘 안만들어져서 문제가 생겼다. 이것 때문에 애를 먹었지만 다시 시작해서 시도 했더니 큰 문제는 없었다. 아무래도 project id를 잘못 친 것 같다

 

그리고 다행히 github에 대해 어느 정도 알고 있어서 이번 Jenkins 관련 hands-on-lab가 잘 이해됐지, 아니었으면 잘 이해 못했을 것 같다. 역시 아직은 공부할게 많은 듯 하다