DevOps/Kubernetes
[k8s]Kubernetes Volume - nfs구성 in GCE
아키텍쳐 현재 제가 Test하고 있는 GCE에서 kubeadm을 이용하여 구성한 kubernetes 환경입니다. Kubernetes Volume - nfs Kubernetes는 다양한 Volume을 지원합니다. 대표적으로 emptyDir, hostPath, AmazonEBS... 이번에는 흔히 볼 수 있는 NFS로 볼륨을 구성하여 파드간의 통신과, 데이터 백업을 할 수 있는 환경을 구성하였습니다. 현재 저는 GCE에서 "kubeadm"을 사용하여 Master-node(Control plane)과 2개의 worker-node를 구성하였습니다. 이번 실습에서는 추가적으로 NFS Server를 할 수 있는 GCE instance를 생성하여 테스트하였습니다. GCE에서 instacne 생성 gcloud sdk ..
[k8s]local에서 kubectl로 GKE 사용 소소꿀팁
kubectl? kubectl의 정의에 대해서 공식문서를 참조하면, Kubectl은 쿠버네티스 클러스터를 제어하기 위한 커맨드 라인 도구이다. 구성을 위해, kubectl 은 config 파일을 $HOME/.kube 에서 찾는다. 라고 적혀있습니다. 즉, 클러스터가 local에서 구동되는지 Cloud Computing으로 구동되는 Cluster인지 설정이 가능합니다. 현재 저는 MacBook Pro 13 (2 GHz Quad-Core Intel Core i5, 16 GB 3733 MHz LPDDR4X)로 kubernetes를 local로 3개이상의 노드 구성에 조금 힘든점이 있어서 GKE를 사용중입니다. (돌아가긴하지만.. Fan도 같이 돌아가는 아주 멋진 현상🏇) kubectl에는 context가 있습..
[k8s] kubernetes는 YAML 친화적입니다. `yq`를 사용해서 데이터 파싱, Solve Error "mapping values are not allowed in this context"
JSON(JavaScript Object Notation) 데이터 포맷은 가장 널리 사용되고, 아주 강력합니다. 하지만 kubernetes에서 JSON보다는 YAML을 사용해 구성파일을 작성하거나, describe 명령의 출력물 자체도 YAML 포맷을 띄고 있습니다. YAML에서는 jq가 아닌 yq JSON 포맷을 지원하는 보통에서는 jq 커맨드라인 유틸리티를 많이 사용합니다. JSON 데이터에서 필요한 정보를 추출하거나 변형하기 위해서 프로그래밍 언어에서는 데이터 파싱 + 조작의 번거로운 과정을 거치지만, jq에서는 간단하게 커맨드라인을 통해 작업이 가능합니다. 많이 사용되는 jq 문법의 기초를 다질 수 있는 부분은 다음 글을 참조하면 좋습니다. 👉44bits - 커맨드라인 JSON 프로세스 jq 하지..
[k8s]local kubectl로 remote cluster(GKE) 연결 시 자주 겪는 문제 - TimeServer Sync
Background 전날 하던 작업에 다시 동기화하거나, Cluster를 지웠다가 오랜시간이 자나면서 생기는 문제이다. 현재 내가 연결하고 있는 상황은 다음과 같다. Local VM machine 위에서 gcloud SDK로 local에서 kubectl을 통해 Remote에 있는 GKE Cluster로 작업중이다. Macbook 사양이 좋은 편이아니라, Control Plane외에 2개 이상의 Node가 올라가면 힘들어한다 ㅠㅠ Problem 다음과 같은 log Message를 볼 수 있다. $ k get node Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2021-03-06..