Cloud/k8s 16

[k8s] calico - multiple nic + metallb 사용법

개요 calio + metallb에서 multple nic 사용법을 정리 합니다. NIC 환경 controlplane nic1(ens33) : 1.1.0.0/16 nic2(ens35) : 172.10.1.1/16 woker node1 nic1(ens33) : 1.1.0.1/16 woker node2 nic1(ens33) : 1.1.0.2/16 woker node3 nic1(ens33) : 1.1.0.3/16 Calico 배포 위 NIC 환경에서 calico를 배포하면 controplane쪽이 정상 동작을 하지 않습니다. 로그를 보면 BGP 통신이 cluster IP가 아닌 다른 IP를 사용해서 그런것으로 판단이 됩니다. W1208 05:14:22.290398 240 feature_gate.go:241] ..

Cloud/k8s 2023.12.08

[k8s-deep dive] OCI 란?

개요 OCI (Open Container Initiative) 가 무엇인지 알아보겠습니다. OCI 정의 Open Container Initiative (OCI)는 프로젝트입니다. 이 프로젝트는 container 기술과 관련된 표준을 개발하고 관리하는 것을 목표로합니다. OCI에서 관리된는 표준은 아래 3가지 이며 https://github.com/opencontainers 관리가 되고 있습니다. runtime-spec 참조 사이트 https://github.com/opencontainers/runtime-spec GitHub - opencontainers/runtime-spec: OCI Runtime Specification OCI Runtime Specification. Contribute to ope..

Cloud/k8s 2023.11.21

[급한 k8s] 4. 외부 서비스

외부로 service하는 방법 1. Port forwarding 1) 개요 - master node에서 접속할 pod를 대상으로 port forwarding을 해주는 것입니다. - process레벨로 돌아가기 때문에 매번 설정을 해줘야 되서 테스트 할 때만 사용하는게 좋음 2) 설정 방법 - 배포 할 Pod root@master:~/k8s_yaml# cat nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: nginx:1.14.2 - 명령어 #kubectl port-forward --address 0.0.0.0 nginx-pod 80:80 2. NodePort 1) 개요..

Cloud/k8s 2023.01.01

[k8s] k8s 관련 지식

1. k8s가 뭔지 아는가? 1) k8s란? container를 관리하는 ochestration tool 입니다. 2) k8s의 핵심 개념? 쿠버네티스에서 가장 중요한 것은 desired state 라는 개념입니다. desired state란 운영자가 원하는 시스템의 상태를 설정해 놓으면 k8s가 끊임없이 current state를 체크해서 desired state를 맞추는 것입니다. 3) k8s는 desired state를 어떻게 구현하였는가? (1) api-server - kubelet과 kubeproxy의 요청을 처리 합니다. - kube-apiserver는 etcd에 접근할 수 있는 유일한 Component로, K8s 클러스터의 상태를 Key-Value 형식으로 etcd 저장소에 관리 합니다. (..

Cloud/k8s 2022.11.26

[k8s] 2. 네트워크의 종류 및 CNI

개요 k8s의 네트워크 종류에 대하여 살펴 보겠습니다. 네트워크 종류 1. node network master node와 worker node간의 물리적으로 구성된 network를 말합니다. 2. pod network Pod간의 network를 말하며, Pod간의 network는 CNI를 통하여 구현됩니다. CNI의 역활은 pod가 생성/삭제 될 때 마다 IP를 할당 및 제거하는 것입니다. 3. cluster network k8s에서 제공하는 service들을 통해서 이루어지는 network를 말합니다. k8s에서의 network 통신 1. Pod 내부에서의 통신 Pod에는 한개의 IP만 할당이 됩니다. 그렇게 때문에 Pod내부의 container간 통신은 localhost를 사용하여 통신을 합니다 그래..

Cloud/k8s 2022.11.22

[k8s] 1. 네트워크 구현 방식

개요 k8s에서 network 통신이 어떻게 이루어지는 알아 보겠습니다. 핵심원리 k8s는 network namespace라는 기술을 사용하여 network를 분리 합니다. 그리고 분리된 network에 가상의VNIC(Virtual Network Interface Card)를 할 당하고 이를 virtual swich에 연결하는 방식으로 구현이 됩니다. 구성 2개의 물리 서버 4개의 network namespace basic turnnel 구성 script #################################################################### #environment variable ##################################################..

Cloud/k8s 2022.11.19

[급한 k8s] 2. k8s 설치

설치 과정 요약 k8s의 설치 과정은 3개(환경 설정 / container runtime 설치 / CNI 배포) 로 나눠집니다. 1. 환경 설정 아래 두개의 설정은 필수 입니다. 1) 방화벽 해제 2) swappof -a 2. container runtime 설치 k8s가 container를 생성하고 실행하는 것이 아니기 때문에 container runtime을 설치해 주어야 합니다. 1) k8s는 container runtime 별로 설치 방법이 다르기때문에 k8s.io 사이트에서 매번 확인을 하는 것으르 추천 합니다. https://kubernetes.io/docs/setup/production-environment/container-runtimes/ 2) cri-o 설치 가이드 https://www..

Cloud/k8s 2022.11.12

[kubernetes] cheat sheet

특정 node 스케쥴링 막기 - kubectl cordon은 지정된 노드에 더이상 포드들이 스케쥴링되서 실행되지 않도록 합니다 1) 설정 #kubectl cordon "node이름" # kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready,SchedulingDisabled control-plane 21h v1.25.2 worker Ready 5h49m v1.25.3 2) 해제 #kubectl uncordon "node이름" 특정 node의 pod를 다르 node로 옮기기 #kubectl drain docker-for-desktop --ignore-daemonsets=true --ignore-daemonsets=true 은 daemonsets이 있어도..

Cloud/k8s 2022.10.14