# ingress 설정 - 많은 서비스들을 클러스터의 외부로 expose 시키거나 호스트 노드의 낮은 숫자의 포트로 expose 하기 위해 ingress controller 또는 service mesh를 적용해야 해야한다. # 간단한 테스트를 위해 nginx deployment를 생성한다. # app 이름은 secondapp으로 한다. ps0107@k8smaster1:~$ kubectl create deployment secondapp --image=nginx deployment.apps/secondapp created # 현재 deployment에 의해 사용되어지는 label 들을 찾아본다. # ingress controller 로 부터 적절한 service 로 트래픽을 주기 위해 label들을 사용한..
# 기존 실습 리소스 정리 ps0107@k8smaster1:~$ kubectl delete deploy nginx-nfs deployment.extensions "nginx-nfs" deleted ps0107@k8smaster1:~$ kubectl delete pvc pvc-one persistentvolumeclaim "pvc-one" deleted ps0107@k8smaster1:~$ kubectl delete pv pvvol-1 persistentvolume "pvvol-1" deleted # ResourceQuota 설정 해보기 - ResourceQouta를 기본 설정으로 생성해 보자. 그리고 PV,PVC를 생성하여 어떻게 변경되는지 확인해 보자 # 해당 namespace 안에서는 500 Mi 까..
# NFS Server/Client 세팅 # NFS Server/Client 세팅 # ---------------------------------- # master node : NFS Server # worker node : NFS Client # ---------------------------------- # master node : NFS Server 세팅 ps0107@k8smaster1:~$ sudo apt-get update && sudo apt-get install -y nfs-kernel-server ps0107@k8smaster1:~$ sudo mkdir /opt/sfw ps0107@k8smaster1:~$ sudo chmod 1777 /opt/sfw ps0107@k8smaster1:~$ ..
# ConfigMap에 대해 간단하게 테스트 해보자 # 주요 색들을 포함한 ConfigMap을 생성해 보자. # 먼저 primary라는 디렉토리를 만들고 색과 관련된 파일들을 생성해본다. ps0107@k8smaster1:~$ mkdir primary ps0107@k8smaster1:~$ echo c > primary/cyan ps0107@k8smaster1:~$ echo m > primary/magenta ps0107@k8smaster1:~$ echo y > primary/yellow ps0107@k8smaster1:~$ echo k > primary/black ps0107@k8smaster1:~$ echo "known as key" >> primary/black ps0107@k8smaster1:~$ e..
# Deploy A new Service # nginx deployment 배포를 위한 yaml 파일 준비 ps0107@k8smaster1:~$ vi nginx-one.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-one labels: system: secondary namespace: accounting spec: replicas: 2 template: metadata: labels: app: nginx spec: containers: - image: nginx:1.11.1 imagePullPolicy: Always name: nginx ports: - containerPort: 8080 #-> 포트는 8080으로 ..
ReplicaSet 동작 살펴보기 ReplicaSet 생성을 위한 yaml 파일 생성 ps0107@k8smaster1:~$ vi rs.yaml apiVersion: extensions/v1beta1 kind: ReplicaSet metadata: name: rs-one spec: replicas: 2 template: metadata: labels: system: ReplicaOne spec: containers: - name: nginx image: nginx:1.11.1 ports: - containerPort: 80 ReplicaSet 생성 ps0107@k8smaster1:~$ kubectl create -f rs.yaml replicaset.extensions/rs-one created 생성된 R..
RESTful API Access (토큰 기반 리소스 접근, namespace별 토큰 생성) api server의 node의 ip와 port 확인, 클러스트 설정 정보 확인 ps0107@k8smaster1:~$ kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://k8smaster:6443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kub..
TLS Access 설정 (인증서 기반의 클러스터 API) api를 통해 직접 호출 할수 있도록 3가지 key를 필요로 한다. ~/.kube/config 경로 안에 있는 아래 3가지 키를 base64로 encording 한 후 각각의 파일로 저장 하여 사용한다. - certificate-authority-data - client-certificate-data - client-key-data ~/.kube/config 안에 정보를 확인 ps0107@k8smaster1:~$ cat ~/.kube/config apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQ..
Links to resources # Exam Guide https://cloud.google.com/certification/guides/cloud-engineer/ Associate Cloud Engineer Certification | Certifications https://cloud.google.com/certification/cloud-engineer # Qwiklab(Recommended) https://google.qwiklabs.com/quests/23?locale=en https://google.qwiklabs.com/quests/66 # Practice Exam https://cloud.google.com/certification/practice-exam/cloud-architect ..
이번엔 우리의 pod 중 일부가 node 에서 퇴출되고 다른 곳으로 스케줄이 변경되도록 할 것이다. 이것은 기본적인 maintenance 또는 롤링 OS 업데이트 등으로 있을 수 있다. 먼저 worker1번 노드를 더이상 스케쥴 되지 않도록 한다. 이때, worker1번 노드에 있는 pod들을 다른 노드들로 퇴출된다. 현재 master node 이미지 수 확인 ps0107@k8smaster1:~$ sudo docker ps | wc -l 22 현재 worker node 이미지 수 확인 ps0107@k8sworker1:~$ sudo docker ps | wc -l 28 maintenance를 완료하기 위해 노드에서 컨테이너를 이동하고 새 컨테이너가 배치되는 것을 막아야 한다. # - drain : 비우다 ..