kubectl Kubernetes DashBord를 배포하고 로그인해 봅니다. K8s의 학습에서, DashBord의 로그인 방법에 조금 수고했으므로 메모를 남겨 둡니다. 이번에 Kubernetes는 Docker Desktop(mac)의 Kubernetes 연계를 사용하여 로컬에 배포하고 있습니다. 버전은 아래와 같습니다. 다음을 실행 실행 후 새 Namespace가 만들어지고 대시보드에 필요한 리소스가 배포됩니다. 우선 get로 확인 ↓ 제대로 움직여 그렇네요. 이제 ... kubectlkubernetes 도구 설치 k8s 테스트 환경 구축 도구 설치 Rancher: v2.6.3 kubernetes(Client): v1.22.4 kubernetes(Server): v1.22.4 다음 설치/설정 수행 이름 내용 bash-completion 명령 자동 완성 (bash의 "Tab"키와 동일) krew kubectl 플러그인 관리 도구 kubectx 사용 context를 쉽게 변경 쿠벤 작업 namespace를... 쿠벤kubectl-pluginkubectlkubectx PowerShell 프롬프트에 Kubernetes의 현재 컨텍스트 출력 다음과 같은 스크립트를 profile.ps1이라는 파일 이름으로 저장하고C:\Users\<ユーザー名>\Documents\WindowsPowerShell\ 에 배치한다. (PowerShell Core의 경우 설치 디렉토리 바로 아래) profile.ps1 이 예에서는 현재 디렉토리를 함께 표시하지만,kubectl config current-context 의 결과가 유효하면 좋기 때문에 나머지는... PowerShellkubectlkubernetes 우분투에 개발용 Kubernetes 환경 구축 당사의 YouTube 채널에서 CTO의 에 의한 Kubernetes의 해설 동영상을 공개를 공개하고 있습니다. 나도 이 동영상으로 공부중입니다만, Ubuntu의 Kubernetes 환경의 구축 순서가 기재되어 있지 않았기 때문에, 공식 문서 등을 참고로 실천하고 정리해 보았습니다. 바이너리를 설치하는 방법과 패키지 관리자로부터 설치하는 방법이 있다. 버전 업데이트가 쉽도록 패키지 매니저(ap... 추kubernetes우분투리눅스kubectl [Kubernetes] 사용자 관리 및 RBAC 확인 이번에는 RBAC의 동작을 확인하고 있으면, 유저 관리의 이야기가 되어 왔습니다. 자세하게 알고 싶은 분은, 이 기사보다 이하의 사쿠라 인터넷씨의 기사가 자세하게 해설되고 있으므로, 이쪽을 보시는 것이 낫습니다. Kubernetes에서는 authentication 모듈이 표준으로 몇 개 제공되고 있습니다만, 이번은 「X509 Client Certs」를 사용합니다. 개인 키 'user01.ke... kubectlkubernetes Kubectl의 zsh 완성 기능으로 막힌 이야기 kubectl의 zsh 보완 기능을 설정할 때 막혔기 때문에 정리한다. 아오야마 마야 씨의 에는 이하와 같이 기재되어 있었다. kubectl의 다양한 사용법을 설명해 왔지만, 쉘 보관 기능도 준비되어 있습니다. bash 또는 zsh를 선택할 수 있으므로 환경에 따라 둘 중 하나를 지정하십시오. '~/.bash_profile'이나 '~/.zprofile'로 설정하면 로그인 시 활성화되어 편리합... zsh-completionsZshkubectlkubernetes kubernetes 공부 메모 2(Pod) kubernetes 공부 노트 이번에는 5 개의 리소스 중 하나가 kubernetes workloads 리소스에 대해 클러스터에서 컨테이너를 시작하는 리소스. 총 8종류의 자원이 있다. Pod Replication Controller Replicaset deployment Daemonset Statefulset Job Cronjob 포드 kubernetes의 최소 단위 자원. 포드는 하나 이... nginxkuberneteskubectlPOD도커 [Kubernetes] Init Containers의 동작 확인 이번에는 Init Containers의 동작을 확인하고 싶습니다. Init Containers는 응용 프로그램 컨테이너 앞에 실행되고 응용 프로그램 컨테이너의 이미지에 존재하지 않는 설치 스크립트와 유틸리티를 포함하는 특수 컨테이너입니다. 유스 케이스로는, 보안의 관점에서 어플리케이션 컨테이너 이미지에 포함하고 싶지 않은 툴의 실행 등이 있습니다. 그 외, 이하의 메뉴얼에도 기재되어 있습니다... kubectlkubernetes [Kubernetes] Readiness Probe의 동작 확인 은 Liveness Probe의 동작을 확인했으므로 이번에는 Readiness Probe의 동작을 확인하고 싶습니다. Liveness Probe와 Readiness Probe의 차이, 헬스 체크 방식, 간격은 전회의 내용을 참조해 주시면 좋겠습니다. 포드가 두 개 있으면 Readiness Probe 검사가 성공하면 LoadBalancer에서 트래픽이 밸런싱됩니다. (이하 그림 왼쪽) (아래 ... kubectlkubernetes Kubernetes에서 로그를 보려고 해도 "no space left on device"라고 불린다 상황으로서는 복수의 컨테이너를 몇개나 출시해, 로그 축제가 되고 있는 것 같은 환경에서 Minikube인 것도 물론 로컬 환경 이것을 조사해도 영어 밖에 나오지 않기 때문에 일본어로 정리해 두려고 생각합니다. <=ここが大事 로 하고 있는 「/mnt/sda1」의 빈 용량이 Docker 엔진이 사용하는 스페이스의 모양. 따라서 디스크 공간에는 문제가 없으며 다른 문제처럼 보입니다. 만약 여기가 ... 추tipskubectlkubernetes [Kubernetes] 리소스 제어 동작 확인 2 이번 검증 환경의 worker 노드는 2vCPU(2000m) 탑재하고 있습니다. requests(하한)의 합계가 2200m가 되어, worker 노드의 자원을 넘고 있습니다. 매니페스트는 과 유사하며 requests와 limits 값만 다릅니다. 전회 확인한 결과라면 requests의 값은, 무부하 상태에서는 확보되어 있지 않았습니다만, requests의 합계치가 노드의 vCPU를 넘으면 스... kubectlkubernetes [Kubernetes] NodePort 서비스의 동작 확인 이번에는 Service의 하나인 NodePort의 동작을 확인하고 싶습니다. 은 ExternalIP 동작을 확인했습니다. 동작적으로 NodePort와 ExternalIP는 매우 비슷하기 때문에 차이를 중심으로 확인하고 싶습니다. 다음 매니페스트를 만들었습니다. sampleNodePort.yaml NodePort는 모든 작업자 노드를 입구로 외부와 통신합니다. 따라서 ExternalIP는 외부... kubectlkubernetes [Kubernetes]ExternalIP 동작 확인 에서는 ClusterIP가 클러스터 내에서만 통신하는 서비스라고 가정했습니다. 그러나 ClusterIP에는 ExteralIP를 구성할 수 있으며 이를 구성하여 클러스터 외부의 노드와 통신할 수 있습니다. 이번에는이 ExternalIP의 동작을 확인하고 싶습니다. ExternalIP는 매니페스트 유형으로 설정하지 않습니다. type은 ClusterIP입니다. 다소 어렵습니다. 작성한 매니페스트... kubectlkubernetes [Kubernetes] CronJob의 동작 확인 3 이번에는 CronJob의 히스토리를 저장할 수를 지정하는 매개 변수의 동작을 확인하고 싶습니다. 성공한 Job을 저장하는 수 실패한 작업을 저장하는 수 먼저 성공한 Job을 저장하는 동작에서 확인합니다. 이 매니페스트를 적용하여 다른 터미널에서 Pod(Job) 상태를 확인합니다. 세 번째 포드(작업)가 배포된 시점이 아니라 세 번째 포드(작업)가 완료된 후 첫 번째 작업이 삭제되었음을 알 수... kubectlkubernetes [Kubernetes] CronJob의 동작 확인 2 이번에는 Job의 동시 실행을 제어하는 파라미터 "concurrencyPolicy"의 동작을 확인하고 싶습니다. 설정할 수 있는 값은 다음 세 가지가 있습니다. 동시 실행하지 않음 (이전 작업이 종료되지 않은 경우 다음 작업을 실행하지 않음) 이전 작업이 종료되지 않은 경우 해당 작업을 취소하고 다음 작업을 실행합니다. 먼저 기본 Allow 동작을 확인합니다. 작성한 yaml 파일은 여기입니... kubectlkubernetes Deployment의 동작 확인 3 Deployment에는 변경사항을 롤백하는 기능이 있습니다. 이번에는 롤백의 동작을 확인해 보겠습니다. 먼저 현재 상태를 확인합니다. Deployment 이름 "sample-pod4"에는 두 개의 ReplicaSet이 있습니다. 현재 Image 버전이 "1.16"인 ReplicaSet이 사용되고 있습니다. kubectl rollout 명령으로 확인합니다. 그림에서는 Revision.1도 나타... kubectlkubernetes Deployment의 동작 확인 1 지금까지 Pod, ReplicaSet의 동작을 확인해 왔으므로 이번에는 Deployment의 동작을 확인합니다. Deployment는 ReplicaSet, Pod의 상위 개념으로 다음과 같은 관계가 있습니다. 다음 yaml 파일을 만들었습니다. sampleDep.yaml 만든 Deployment를 확인합니다. Deployment가 ReplicaSet을 만들고 ReplicaSet이 Pod를 만... kubectlkubernetes ReplicaSet 스케일링 ReplicaSet은 설정을 변경하여 복제본 수를 변경할 수 있습니다. 이번에는 그 동작을 확인했습니다. 두 가지 방법이 있습니다. 1. kubectl scale 명령으로 변경 2. 매니페스트를 다시 작성하고 kubectl apply 명령으로 반영 초기 상태를 확인합니다. 복제본을 3 -> 5로 확장합니다. 복제본이 증가했습니다. 여기서 의도적으로 포드를 삭제하여 셀프 힐링 기능이 작동하는지... kubectlkubernetes ReplicaSet 및 Label 은 ReplicaSet의 동작을 확인했습니다. 서버가 떨어지고 복제본 수가 줄어들면 셀프 힐링 기능으로 복제본 수를 복구했습니다. 마스터 서버가 복제본 수가 줄어들었음을 감지하고 작업자 노드에 복제본을 늘리도록 지시합니다. 합니다. 포드 수가 아닙니다. 이번에는 이 동작을 확인하고 싶습니다. 그림으로 쓰면 이런 느낌입니다. 세세하게 쓰면 더 여러가지 있습니다만, 여기에서는 대체로의 이미지가 ... kubectlkubernetes ReplicaSet의 동작 확인 Pod의 성능과 가용성을 높이기 위해 Kubernetes는 기본적으로 "스케일 아웃"합니다. 스케일 아웃은 노드(여기에서는 Pod/컨테이너)의 CPU/메모리를 늘리는 것이 아니라, 노드(Pod/컨테이너)를 늘립니다. 이 스케일 아웃의 구조로서 ReplicaSet가 있으므로, 이번에는이 동작을 확인해 보겠습니다. 다음 yaml 파일을 만들었습니다. sampleReplicaSet.yaml 여기에... kubectlkubernetes Kubernetes 컨텍스트를 일정 시간 동안 유지하고 사용하는 fish 함수 Kubernetes의 여러 개발 환경을 다루는 경우 kubectl config set-context 또는 kubectx와 같은 플러그인을 사용하여 컨텍스트를 전환하지만이 방법으로 의도하지 않은 환경을 조작하는 경우가 종종 있습니다. 그래서 Kubernetes의 컨텍스트를 일정 시간만큼 유지해 이용하는 fish 함수를 써 보았습니다. 다음을 사용할 수 있는 환경을 전제로 하고 있습니다. fun... fishkubectlPecokubernetes microk8s 및 helm을 사용하여 로컬 Kubernetes 클러스터 구축 (추가 설정) 에서 Windows10에 microk8s를 사용하여 Kubernetes 클러스터를 구축했습니다. 일부 관련 기사를 읽고 있으면 부족한 것 같은 설정이 있었으므로 이 기사에서 보충합니다. 다음 추가 설정을 수행합니다. microk8s의 기본적으로 비활성화 된 기능 (storage dns dashboard metrics-server)을 활성화합니다. 호스트 OS 인 Windows 10에서 kub... chocolateykubernetesgrafanamicrok8skubectl
Kubernetes DashBord를 배포하고 로그인해 봅니다. K8s의 학습에서, DashBord의 로그인 방법에 조금 수고했으므로 메모를 남겨 둡니다. 이번에 Kubernetes는 Docker Desktop(mac)의 Kubernetes 연계를 사용하여 로컬에 배포하고 있습니다. 버전은 아래와 같습니다. 다음을 실행 실행 후 새 Namespace가 만들어지고 대시보드에 필요한 리소스가 배포됩니다. 우선 get로 확인 ↓ 제대로 움직여 그렇네요. 이제 ... kubectlkubernetes 도구 설치 k8s 테스트 환경 구축 도구 설치 Rancher: v2.6.3 kubernetes(Client): v1.22.4 kubernetes(Server): v1.22.4 다음 설치/설정 수행 이름 내용 bash-completion 명령 자동 완성 (bash의 "Tab"키와 동일) krew kubectl 플러그인 관리 도구 kubectx 사용 context를 쉽게 변경 쿠벤 작업 namespace를... 쿠벤kubectl-pluginkubectlkubectx PowerShell 프롬프트에 Kubernetes의 현재 컨텍스트 출력 다음과 같은 스크립트를 profile.ps1이라는 파일 이름으로 저장하고C:\Users\<ユーザー名>\Documents\WindowsPowerShell\ 에 배치한다. (PowerShell Core의 경우 설치 디렉토리 바로 아래) profile.ps1 이 예에서는 현재 디렉토리를 함께 표시하지만,kubectl config current-context 의 결과가 유효하면 좋기 때문에 나머지는... PowerShellkubectlkubernetes 우분투에 개발용 Kubernetes 환경 구축 당사의 YouTube 채널에서 CTO의 에 의한 Kubernetes의 해설 동영상을 공개를 공개하고 있습니다. 나도 이 동영상으로 공부중입니다만, Ubuntu의 Kubernetes 환경의 구축 순서가 기재되어 있지 않았기 때문에, 공식 문서 등을 참고로 실천하고 정리해 보았습니다. 바이너리를 설치하는 방법과 패키지 관리자로부터 설치하는 방법이 있다. 버전 업데이트가 쉽도록 패키지 매니저(ap... 추kubernetes우분투리눅스kubectl [Kubernetes] 사용자 관리 및 RBAC 확인 이번에는 RBAC의 동작을 확인하고 있으면, 유저 관리의 이야기가 되어 왔습니다. 자세하게 알고 싶은 분은, 이 기사보다 이하의 사쿠라 인터넷씨의 기사가 자세하게 해설되고 있으므로, 이쪽을 보시는 것이 낫습니다. Kubernetes에서는 authentication 모듈이 표준으로 몇 개 제공되고 있습니다만, 이번은 「X509 Client Certs」를 사용합니다. 개인 키 'user01.ke... kubectlkubernetes Kubectl의 zsh 완성 기능으로 막힌 이야기 kubectl의 zsh 보완 기능을 설정할 때 막혔기 때문에 정리한다. 아오야마 마야 씨의 에는 이하와 같이 기재되어 있었다. kubectl의 다양한 사용법을 설명해 왔지만, 쉘 보관 기능도 준비되어 있습니다. bash 또는 zsh를 선택할 수 있으므로 환경에 따라 둘 중 하나를 지정하십시오. '~/.bash_profile'이나 '~/.zprofile'로 설정하면 로그인 시 활성화되어 편리합... zsh-completionsZshkubectlkubernetes kubernetes 공부 메모 2(Pod) kubernetes 공부 노트 이번에는 5 개의 리소스 중 하나가 kubernetes workloads 리소스에 대해 클러스터에서 컨테이너를 시작하는 리소스. 총 8종류의 자원이 있다. Pod Replication Controller Replicaset deployment Daemonset Statefulset Job Cronjob 포드 kubernetes의 최소 단위 자원. 포드는 하나 이... nginxkuberneteskubectlPOD도커 [Kubernetes] Init Containers의 동작 확인 이번에는 Init Containers의 동작을 확인하고 싶습니다. Init Containers는 응용 프로그램 컨테이너 앞에 실행되고 응용 프로그램 컨테이너의 이미지에 존재하지 않는 설치 스크립트와 유틸리티를 포함하는 특수 컨테이너입니다. 유스 케이스로는, 보안의 관점에서 어플리케이션 컨테이너 이미지에 포함하고 싶지 않은 툴의 실행 등이 있습니다. 그 외, 이하의 메뉴얼에도 기재되어 있습니다... kubectlkubernetes [Kubernetes] Readiness Probe의 동작 확인 은 Liveness Probe의 동작을 확인했으므로 이번에는 Readiness Probe의 동작을 확인하고 싶습니다. Liveness Probe와 Readiness Probe의 차이, 헬스 체크 방식, 간격은 전회의 내용을 참조해 주시면 좋겠습니다. 포드가 두 개 있으면 Readiness Probe 검사가 성공하면 LoadBalancer에서 트래픽이 밸런싱됩니다. (이하 그림 왼쪽) (아래 ... kubectlkubernetes Kubernetes에서 로그를 보려고 해도 "no space left on device"라고 불린다 상황으로서는 복수의 컨테이너를 몇개나 출시해, 로그 축제가 되고 있는 것 같은 환경에서 Minikube인 것도 물론 로컬 환경 이것을 조사해도 영어 밖에 나오지 않기 때문에 일본어로 정리해 두려고 생각합니다. <=ここが大事 로 하고 있는 「/mnt/sda1」의 빈 용량이 Docker 엔진이 사용하는 스페이스의 모양. 따라서 디스크 공간에는 문제가 없으며 다른 문제처럼 보입니다. 만약 여기가 ... 추tipskubectlkubernetes [Kubernetes] 리소스 제어 동작 확인 2 이번 검증 환경의 worker 노드는 2vCPU(2000m) 탑재하고 있습니다. requests(하한)의 합계가 2200m가 되어, worker 노드의 자원을 넘고 있습니다. 매니페스트는 과 유사하며 requests와 limits 값만 다릅니다. 전회 확인한 결과라면 requests의 값은, 무부하 상태에서는 확보되어 있지 않았습니다만, requests의 합계치가 노드의 vCPU를 넘으면 스... kubectlkubernetes [Kubernetes] NodePort 서비스의 동작 확인 이번에는 Service의 하나인 NodePort의 동작을 확인하고 싶습니다. 은 ExternalIP 동작을 확인했습니다. 동작적으로 NodePort와 ExternalIP는 매우 비슷하기 때문에 차이를 중심으로 확인하고 싶습니다. 다음 매니페스트를 만들었습니다. sampleNodePort.yaml NodePort는 모든 작업자 노드를 입구로 외부와 통신합니다. 따라서 ExternalIP는 외부... kubectlkubernetes [Kubernetes]ExternalIP 동작 확인 에서는 ClusterIP가 클러스터 내에서만 통신하는 서비스라고 가정했습니다. 그러나 ClusterIP에는 ExteralIP를 구성할 수 있으며 이를 구성하여 클러스터 외부의 노드와 통신할 수 있습니다. 이번에는이 ExternalIP의 동작을 확인하고 싶습니다. ExternalIP는 매니페스트 유형으로 설정하지 않습니다. type은 ClusterIP입니다. 다소 어렵습니다. 작성한 매니페스트... kubectlkubernetes [Kubernetes] CronJob의 동작 확인 3 이번에는 CronJob의 히스토리를 저장할 수를 지정하는 매개 변수의 동작을 확인하고 싶습니다. 성공한 Job을 저장하는 수 실패한 작업을 저장하는 수 먼저 성공한 Job을 저장하는 동작에서 확인합니다. 이 매니페스트를 적용하여 다른 터미널에서 Pod(Job) 상태를 확인합니다. 세 번째 포드(작업)가 배포된 시점이 아니라 세 번째 포드(작업)가 완료된 후 첫 번째 작업이 삭제되었음을 알 수... kubectlkubernetes [Kubernetes] CronJob의 동작 확인 2 이번에는 Job의 동시 실행을 제어하는 파라미터 "concurrencyPolicy"의 동작을 확인하고 싶습니다. 설정할 수 있는 값은 다음 세 가지가 있습니다. 동시 실행하지 않음 (이전 작업이 종료되지 않은 경우 다음 작업을 실행하지 않음) 이전 작업이 종료되지 않은 경우 해당 작업을 취소하고 다음 작업을 실행합니다. 먼저 기본 Allow 동작을 확인합니다. 작성한 yaml 파일은 여기입니... kubectlkubernetes Deployment의 동작 확인 3 Deployment에는 변경사항을 롤백하는 기능이 있습니다. 이번에는 롤백의 동작을 확인해 보겠습니다. 먼저 현재 상태를 확인합니다. Deployment 이름 "sample-pod4"에는 두 개의 ReplicaSet이 있습니다. 현재 Image 버전이 "1.16"인 ReplicaSet이 사용되고 있습니다. kubectl rollout 명령으로 확인합니다. 그림에서는 Revision.1도 나타... kubectlkubernetes Deployment의 동작 확인 1 지금까지 Pod, ReplicaSet의 동작을 확인해 왔으므로 이번에는 Deployment의 동작을 확인합니다. Deployment는 ReplicaSet, Pod의 상위 개념으로 다음과 같은 관계가 있습니다. 다음 yaml 파일을 만들었습니다. sampleDep.yaml 만든 Deployment를 확인합니다. Deployment가 ReplicaSet을 만들고 ReplicaSet이 Pod를 만... kubectlkubernetes ReplicaSet 스케일링 ReplicaSet은 설정을 변경하여 복제본 수를 변경할 수 있습니다. 이번에는 그 동작을 확인했습니다. 두 가지 방법이 있습니다. 1. kubectl scale 명령으로 변경 2. 매니페스트를 다시 작성하고 kubectl apply 명령으로 반영 초기 상태를 확인합니다. 복제본을 3 -> 5로 확장합니다. 복제본이 증가했습니다. 여기서 의도적으로 포드를 삭제하여 셀프 힐링 기능이 작동하는지... kubectlkubernetes ReplicaSet 및 Label 은 ReplicaSet의 동작을 확인했습니다. 서버가 떨어지고 복제본 수가 줄어들면 셀프 힐링 기능으로 복제본 수를 복구했습니다. 마스터 서버가 복제본 수가 줄어들었음을 감지하고 작업자 노드에 복제본을 늘리도록 지시합니다. 합니다. 포드 수가 아닙니다. 이번에는 이 동작을 확인하고 싶습니다. 그림으로 쓰면 이런 느낌입니다. 세세하게 쓰면 더 여러가지 있습니다만, 여기에서는 대체로의 이미지가 ... kubectlkubernetes ReplicaSet의 동작 확인 Pod의 성능과 가용성을 높이기 위해 Kubernetes는 기본적으로 "스케일 아웃"합니다. 스케일 아웃은 노드(여기에서는 Pod/컨테이너)의 CPU/메모리를 늘리는 것이 아니라, 노드(Pod/컨테이너)를 늘립니다. 이 스케일 아웃의 구조로서 ReplicaSet가 있으므로, 이번에는이 동작을 확인해 보겠습니다. 다음 yaml 파일을 만들었습니다. sampleReplicaSet.yaml 여기에... kubectlkubernetes Kubernetes 컨텍스트를 일정 시간 동안 유지하고 사용하는 fish 함수 Kubernetes의 여러 개발 환경을 다루는 경우 kubectl config set-context 또는 kubectx와 같은 플러그인을 사용하여 컨텍스트를 전환하지만이 방법으로 의도하지 않은 환경을 조작하는 경우가 종종 있습니다. 그래서 Kubernetes의 컨텍스트를 일정 시간만큼 유지해 이용하는 fish 함수를 써 보았습니다. 다음을 사용할 수 있는 환경을 전제로 하고 있습니다. fun... fishkubectlPecokubernetes microk8s 및 helm을 사용하여 로컬 Kubernetes 클러스터 구축 (추가 설정) 에서 Windows10에 microk8s를 사용하여 Kubernetes 클러스터를 구축했습니다. 일부 관련 기사를 읽고 있으면 부족한 것 같은 설정이 있었으므로 이 기사에서 보충합니다. 다음 추가 설정을 수행합니다. microk8s의 기본적으로 비활성화 된 기능 (storage dns dashboard metrics-server)을 활성화합니다. 호스트 OS 인 Windows 10에서 kub... chocolateykubernetesgrafanamicrok8skubectl