kubeadm+contaainerd+cilium으로 k8s를 구축하여 hubble의 동작을 확인하기 전에 시험을 실시하였다
kubernetes를 도입할 때 Calico와 Flanner 등 CNI를 사용하는 경우가 많다고 생각했는데 그중에서도 Cilium(엄숙하게 읽을 수 있다)에 신경을 많이 써서 여러 가지 방법을 시도해 보고 싶었어요.
CKA의 공부도 병행했기 때문에 하려면 쿠베르테스 구축부터 해야 한다.
앞으로 생산라인 시간인 dockershim도 삭제되고,contained도 함께 가져왔습니다.
기사가 길어지기 때문에 이번에는 도입과 동작 확인만 진행한다.
Cilium이란
아래 참조공식.
Clilium은 네트워크, 안전성과 가관성을 제공하고 클라우드 로컬 환경, 예를 들어 Kubernetes 집단과 다른 컨테이너 프레젠테이션 플랫폼을 대상으로 하는 오픈 소스 프로젝트이다.
eBPF라고 불리는 새로운 Linux 커널 기술은 강력한 보안, 가시성 및 네트워크 제어 논리를 Linux 커널에 동적으로 삽입할 수 있는 Cilium에 기반을 두고 있다.eBPF는 고성능 네트워크 작업, 멀티클러스터 및 구름 많은 기능, 고부하 분산, 투명 암호화, 광범위한 네트워크 보안 기능, 투과성 관측 등을 제공하는 데 사용된다.
eBPF를 충분히 사용하여 Kubbernetes 네트워크와 관련된 안전성과 시각화를 실현하였다.
또한 Clilium에는 Hubble의 Clium 통신을 시각화할 수 있는 도구가 하나 더 있습니다.
이해하기 쉬운 해설 페이지가 있으니 자세한 내용은 아래의 내용을 참조하십시오.
https://blog.framinal.life/entry/2021/02/20/222728
https://thinkit.co.jp/article/18836
그럼 환경을 구축하고 싶어요.
컨디션
aws + kubeadm + containerd + cilium
kubeadm+contaained를 가져옵니다.
※ 자세한 설정 없이 쉽게 가져올 수 있습니다.
환경 준비
aws 환경에서 Ubuntu20입니다.04 2대를 가동하다.
이번, 실례 사이즈:t3.medium으로
sudo hostnamectl set-hostname k8scp
sudo hostnamectl set-hostname k8swork
실시containerd의 절차를 다시 "kubeadm 설치"의 절차로 되돌려줍니다.
KUBELET_EXTRA_ARGS=--cgroup-driver=systemd
.systemctl status kubelet
에서 시작합니다.실행
kubeadm init
.만약 init가 여기에 실패한다면 issue,contained의 설정 파일을 삭제하는 것이 좋습니다.
rm /etc/containerd/config.toml
systemctl restart containerd
kubeadm init
kubeadm init 성공 시 정보mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
, kubectl 명령을 실행할 수 있습니다.그리고 kubeadm join의 정보를 잊지 말고 미리 적어두세요.
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
작업 노드 측면의 작업cp측에 기록된 명령을 실행하면workernode로 참가할 수 있습니다.
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
성공 소식을 받으면 반드시cp측에서 kubectl get node
확인 동작을 실행하십시오.ubuntu@k8scp:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
k8scp Ready control-plane,master 21h v1.21.1
k8swork Ready <none> 21h v1.21.1
cilium 가져오기미리 helm 설치 하세요.
공식 절차에 따라 진행한다cilium 만들기.
cilium status
명령으로 결과가 나오면 가져오기가 완료됩니다.이렇게 시각화 도구 허블을 가져오세요.
공식 절차hubble 설치에 따라 진행하다.
여기에 가져올 수 있다면 cilium status에 있는 hubble의 상태도 OK를 표시합니다.
cilium용 연결 테스트pod를 디버깅하고 hubble로 확인합니다.
공식 절차에 따라 진행한다프로그램 설계.
cp 쪽에서 허블을 시작합니다.
# 接続用のIPアドレスを確認
curl ifconfig.io
# 外部公開する
kubectl port-forward -n kube-system svc/hubble-ui --address 0.0.0.0 --address :: 12000:80
브라우저를 통해 에 연결IPアドレス:12000
합니다.다음 화면이 나오면 완성됩니다.
첫화면
cilium-test를 선택할 때의 화면
총결산
이번에 cilium에서 hubble로 가져오는 시동이 걸렸습니다.
cilium 기능이 아직 완전히 사용되지 않았기 때문에 앞으로 다양한 기능을 시도해 보고 싶다.
여기까지 봐주셔서 감사합니다.
기타
cilium에 대한 간단한 학습 방법은 아래 URL을 참조하십시오.
(나는'Cilium getting started'를 만들어 보았는데 매우 이해하기 쉽다.)
https://play.instruqt.com/isovalent
Reference
이 문제에 관하여(kubeadm+contaainerd+cilium으로 k8s를 구축하여 hubble의 동작을 확인하기 전에 시험을 실시하였다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fruscianteee/items/2b130eaa8418b183d515텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)