본문 바로가기

클라우드/Kubernetes24

[kubernetes] Network Policy 네트워크 폴리시는 라벨/ ipblock/네임스페이스에 대해서 특정 조건만 허용하는 기능이다. * 정보를 넣지 않으면 모두 차단 나가는 트래픽은 egress , 들어오늘 트래픽을 Ingress 라하며 NP는 여러 개가 있으면 or식으로 모두 합쳐지게 되어, 하나의 오프젝트로 모두 설명할 필요 없이 세분화하여 나눠 관리가 가능하다. 아래의 예제를 통해 확인해 보자 . apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress - Egress ingress: - f.. 2024. 1. 8.
[kubernetes] Lebel 추가/삭제 명령 대부분 추가하는 명령어는 익숙하다 . kubectl label [서비스] [서비스명] -n key=value 삭제하는 방법은 하기와 같다. 서비스 my-service에 키가 app 인 label을 삭제한다. kubectl label service my-service app- 2024. 1. 8.
(Kubernetes) kubespray로 클러스터 구성하기 클라우드인스턴스에 kubespray로 클러스터 구성하기 kubespray는 ansible로 진행되어 아래의 설정이 필요합니다. 환경 : 클라우드 인스턴스 서버 OS: 우분투 20.04 서버 수: 4 (마스터 노드3 , 워커노드 1) 모든 서버에서 하는걸 권장 2023.02.09 - [운영체제/리눅스] - (리눅스) 클라우드인스턴스에 ssh public key 배포 (리눅스) 클라우드인스턴스에 ssh public key 배포 클라우드에서 ansible /kubespray를 사용하기 위해 ssh-keygen / ssh-copy-id 명령어를 사용하게 되는데 키복사가 되지 않는다. 하기의 방법을 통해 복사할 수 있다. 이전에 발생한 에러 메시지는 root@kube4:~/. blog.base-on.co.kr 2.. 2023. 2. 10.
[Kubernetes] 여러 개의 클러스터에 하나의 컴퓨터에서 명령어 실행 여러 개의 NKS를 하나의 컴퓨터에서 명령어 내리기 쿠버네티스의 kubectl명령어는 기본적으로 ~/.kube/config 라는 파일에서 클러스터의 api 주소로 명령어를 보내게 된다. config파일 주된 내용은 cluster : 연결할 클러스터의 api 주소 (k8s의 api 서버의 기본 포트는 6443) user : 클러스터에 대한 인증 값을 지정 context : 클러스터와 유저를 하나로 명칭하여 context의 값으로 kubectl에서 context 이름 기준으로 세팅함 NKS는 생성시 config에 동일한 값 때문에 다수의 config값을 수정하기 어렵다 - user이름(동일), context이름(동일), cluster이름(NKS의 이름에 따라 다름) 아래 사진을 보면 이해하기 쉽다. cont.. 2022. 10. 24.
[Kubernetes] 클러스터 기간확인 /연장 쿠버네티스 클러스터 인증서의 기간은 1년입니다. 1년이 지나면 kubectl 명령어가 안 되며 이는 kubelet 로그에 만료 Jun 28 12:18:14 kube-master002-xxx kubelet[145630]: E0628 00:02:14.684236 145630 server.go:222] Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid Jun 28 12:18:20 kube-master002-xxx kubelet[145630]: E0628 00:02:20.928108 145630 server.go:222] Unable to authenticate the reques.. 2021. 5. 27.
[kubernetes] kubevirt 를 위한 vm도커 이미지 만들기 안녕하세요. kubevirt 를 사용하기 위해 이미지가 필요한데 컨테이너 이미지는 docker hub에서 가져오면 되는데 vm 이미지를 어떻게 가져오지 라는 의문을 가지게 됩니다. vm이미지 qcow2 파일을 docker image로 만드는 방법을 알아보도록 할게요. 준비물 docker, qcow2 이미지 파일 도커 설치 yum install -y docker-ce qcow2 이미지 주소 https://cloud.centos.org/centos/7/images/ 추가적으로 서버에 다운받을 wget yum install -y wget qcow2 이미지를 다운 받아줍니다. 원하는 파일에 오른쪽 마우스를 누르고 [ 링크주소 복사 ] wget [붙여넣기] 해당 파일을 다운 받았고 다운받은 파일의 {PWD}를 외.. 2021. 2. 5.
[kubernetes] 모니터링 메트릭 서버 안녕하세요. kubernetes의 모니터링 중 가장 기본적인 메트릭 서버를 알려드리려고 합니다. node의 사용량, pod의 사용량을 알기 위해서는 kubectl describe node [node_name] kubectl exec -it -n namespace pod_name -- top 와 같이 하나하나 입력해서 얼마나 쓰고 있는지 확인할 수 있습니다. 하지만 kubectl top를 사용하면 손 쉽게 정보를 확인 할 수 있는데 우선 메트릭서버 부터 다운로드 받아보도록하죠. 메트릭서버 git 주소는 github.com/kubernetes-sigs/metrics-server kubernetes-sigs/metrics-server Cluster-wide aggregator of resource usage .. 2021. 2. 5.
[kubernetes] crio systemd 문제 한 동안 설치를 진행했고 join까지 진행하여 다 된 줄 알았는데 kubectl get po -o wide [added node name] 보니 pod들이 전부 running으로 갈 생각이 없어 보인다 파드들 전부 describe로 보니 아래와 같게 나온다. failed to create pod sandbox: rpc error: code = unknown desc = container create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available 해결방법: /var/lib/kubelet/kubeadm-flags.env 에 --cgroup-driver=systemd를 추가해본다. KUBE.. 2021. 2. 5.
[kubernetes, CKA] 명령어 예제 쿠버네티스를 시작하면 당황스러운게 yaml파일인데 기본 틀은 생성을 하거나 yaml을 작성하지 않고 기본적인 설정은 command으로 실행을 할 수 있습니다. 기본적인 command를 알려드리도록 할게요. kubectl get ,desribe, log, exec등은 다음 기회에 하고 CKA에 필요한 기본적인 생성에 필요한 것들부터 오늘은 시작합니다. pod 생성#kubectl run --image=nginx nginx // 파드를 생성하기 이미지 nginx 파드명 nginx //kubectl get po 로 확인해봅니다 추가적인 옵션은 -n [namespace] : 네임스페이스 지정 -command [명령어] : 컨테이너에 명령어 실행 -env [환경변수] : 컨테이너에 환경변수 설정 -ㅣ [라벨] : .. 2021. 1. 24.
[kubernetes] 쿠버네티스 트러블슈팅( 워커노드 오류 시 확인) 워커노드가 문제보인다면 어떻게 확인하는 지 확인해보도록하겠습니다. kubectl get node로 노드 확인 kubectl get node Status에 문제가 있다면 kubectl describe node [node name] 으로 확인해서 상세하게 확인한다. 충돌을 확인!! 이후 Worker노드로 이동해 서버에 문제가 있는 지 확인합니다. top dh -h 추가로 노드의 kubelet이 정상인지도 확인한다. service kubelet status sudo journalctl -u kubelet 인증서의 문제가 있는지도 확인해본다. openssl x509 -in /var/lib/kubelet/[보통 노트 이름].crt -text 만료 날짜를 확인해보는게 가장 유력하다 2020. 12. 10.
[kubernetes] 쿠버네티스 트러블슈팅( 마스터, 컨트롤 플레인 오류 시 확인) 안녕하세요 오늘은 쿠버네티스 컨트롤 플레인의 오류가 발견됐을 떄 어떻게 해결하는 지에 대한 확인 방법을 알아보려고합니다. 먼저 노드 상태를 확인해야겠죠? kubectl get node 를 통해 노드의 상태 status를 확인합니다. 또한 더 자세한 정보를 알기 원하신다면 -o wide 를 넣어 버전과 아이피를 커널버전도 확인 가능합니다. 다음으론 kubectl get po -n kube-system 으로 kube-system의 포드가 정상 실행 중인지 확인합니다. service kube-apiserver status service kube-controller-manager status service kube-scheduler status service kube-proxy status service kub.. 2020. 12. 10.
쿠버네티스 ) Jsonpath / CLI로 정보출력하기 kubectl을 사용하면서 Jsonpath로 정보를 가져오는 방법에 대해 논해보려고 합니다. 보통 kubectl을 사용하면 리스트를 뽑을 때 kubectl get [오브젝트 이름] 을 사용하여 리스트를 출력하고 자세한 출력을 위해 kubectl get [오브젝트 이름] -o wide 와 같이 사용하게 됩니다. 특정 네임스페이스에 파드를 출력은 kubectl get po -n [네임스페이스] 를 사용하며 해당 파드 또는 오브젝트의 yaml, json 형식으로 보고 싶다면 kubectl get [object_name] -o [ yaml/json ] 을 이용해보세요. 간단하게 출력하는것을 알아보았는데 json의 정보를 출력을 하면 복잡하게 나와 가독성이 부족하게 됩니다. 이번에 jsonpath를 사용하여 필요.. 2020. 6. 24.
반응형