Kubernetes Study를 하며...

Kubernetes Study를 하며...

2021, Mar 13    

정리를 하게 된 이유.

올해 상반기 버킷 중 하나를 로드자전거, 쿠버네티스 자격증 취득으로 잡은 만큼 한번 노력해보기로 한다.

여기 준비하며, 정리도하고, 공부도하고 끄적거리는 공간으로 쓸 포스팅.

Udemy에 있는 쿠버네티스 강좌를 수강하며, 문제와 해답을 정리하는 공간.

POD 정리

1. How many pods exist on the system? In the current(default) namespace.

    kubectl get pods

2. Create a new pod with the nginx image.

    kubectl run nginx --image=nginx

3. How many pods are created now? Note: We have created a few more pods. So please check again.

    kubectl get pods

4. What is the image used to create the new pods? You must look at one of the new pods in detail to figure this out.

    kubectl describe pod newpods-<id>

5. Pods 의 다른 컬럼들 상세보기

    kubectl get pods -o wide

6. 파드안에 컨테이너 몇개??

    kubectl get pods webapp 해서 webapp안에 있는 컨테이너 갯수

7. What is the state of the container agentx in the pod webapp?

    Run the command kubectl describe pod webapp and look at the state of the agentx container.

8. Why do you think the container agentx in pod webapp is in error?

    Try to figure it out from the events section of the pod.

    Run the command kubectl describe pod webapp and look under the events section.
    An image by that name does not exist in DockerHub.

9. What does the READY column in the output of the kubectl get pods command indicate?

    들어가서 상태보면됨

10. Delete the webapp Pod. Once deleted, wait for the pod to fully terminate.

    kubectl delete pod <podname>

11. Create a new pod with the name redis and with the image redis123.

Use a pod-definition YAML file. And yes the image name is wrong!
    kubectl run redis --image=redis123

12. Now change the image on this pod to redis. Once done, the pod should be in a running state.

    kubectl run redis --image=redis123 --dry-run=client -o yaml > pod.yaml

    위에 명령어로 생성된 pod.yaml에서 입맞에 맞게 수정

    kubectl apply -f pod.yaml 

Replicaset 정리

1. How many PODs exist on the system? In the current(default) namespace.

    kubectl get pods

2. How many ReplicaSets exist on the system? In the current(default) namespace.

    kubectl get replicasets.apps    

3. How many PODs are DESIRED in the new-replica-set?

    kubectl get replicasets.apps

4. What is the image used to create the pods in the new-replica-set?

    kubectl describe replicasets.apps new-replica-set

5. 레플리카셋의 생성된 pods에서 사용된 이미지가 뭔지 찾기

    kubectl describe replicasets.apps new-replica-set
    검색을 하면 안에 내용에 컨테이너의 이미지에 뭐가 쓰였는지 명시되어있음.

6. 얼마나 만은 pods들이 레플리카셋에 준비되어있는지 보는 방법

    kubectl describe replicasets.apps new-replica-set
    안에 pods들의 상태가 나와있음

7. 레플리카셋은 pods를 하나 지워도 그대로 남아있음

    하나를 죽여도 새로 만드는게 레플리카셋의 기능이기때문에

8. kubectl edit replicasets.app new-replica-set 으로 edit을 해서 수정을 했을 경우

    pods를 모두 지워서 새로 만들어줘야된다.
    지우면 어짜피 1개씩 새로 만들어지기 때문에 하나씩 지우면됨

9. 레플리카셋의 스케일을 바꾸는 방법 5개로

    kubectl scale replicaset --replicas=5 <레플리카셋이름>

Deployments 정리

1. How many PODs exist on the system?

In the current(default) namespace.

    kubectl get pods

2. How many ReplicaSets exist on the system?

In the current(default) namespace.

    kubectl get replicasets.apps

3. How many Deployments exist on the system?

In the current(default) namespace.

    kubectl get deploymemts.apps

4. What is the image used to create the pods in the new deployment?

    kubectl describe deployments.apps frontend-deployment | grep -i image

5. Why do you think the deployment is not ready?

    kubectl get pods //pods을 검색
    kubectl describe pod "pod들중 하나의 이름"

6. Create a new Deployment using the deployment-definition-1.yaml file located at /root/.

There is an issue with the file, so try to fix it.

    현재 경로에 deployment-definition-1.yaml가 있다. 이거 가지고 만들어보자.
    kubectl apply -f deployment-definition-1.yaml 
    위 명령어로 에러가 나서 생성이 안될수도 있다.
    
    그럼 vi편집기로 deployment-definition-1.yaml 내용을 수정한다. 
    
    deployment는 kine: Deployment 대문자로 시작 해야된다. 수정 후 다시 
    kubectl apply -f deployment-definition-1.yaml 

7. Create a new Deployment with the below attributes using your own deployment definition file.

Name: httpd-frontend;

Replicas: 3;

Image: httpd:2.4-alpine

    kubectl create deployment httpd-frontend --image=httpd:2.4-alpine

    kubectl scale deployment --replicas=3 httpd-frontend