Raspberry PI 및 kubeadm에서 홈 Kubernetes 클러스터 구축
15067 단어 kubeadmRaspberryPikubernetes
입문
안녕하십니까? 제 이름은 @hatotaka입니다. 이 글은 Z Lab Advent Calendar 2017 16일째 글입니다.
이번에는 Kubernetes 초보자들에게 Raspberry PI와 Kubeadm을 이용하여 자신의 집을 구축하는 방법을 소개하고 싶습니다. 저도 11월부터 본격적으로 업무적으로 Kubernetes를 사용하기 시작했습니다. 공부로 저는 자신의 집에 Kubernetes를 구축했습니다. 그래서 이 방법을 공유하고 싶습니다.
준비
우선, 필요한 물건을 준비하다
이번에 제가 준비한 물건은 다음과 같습니다. 이것들은 모두 Yahoo입니다!쇼핑이나 아마존에서 살 수 있어요.
우선, 필요한 물건을 준비하다
이번에 제가 준비한 물건은 다음과 같습니다. 이것들은 모두 Yahoo입니다!쇼핑이나 아마존에서 살 수 있어요.
그리고 나는 이미 집안의 아래의 물건을 사용했다.
Kubernetes 클러스터 구축
이번에 구축된 Kubernetes 클러스터는 다음과 같습니다.
운영 체제 설치
우선, Raspberry PI에 OS를 설치합니다. 이번 OS는 Raspbian을 사용합니다. OS의 설치는 마이크로 SD카드에 이미지를 쓰는 것입니다.이 작업들은 macOS에서 진행된다.
다음 URL에서 Raspbian stretch lite 다운로드
디스크 경로는 환경에 따라 다릅니다.
// zipファイルを解凍する
$ cd ~/Download
$ unzip 2017-09-07-raspbian-stretch-lite.zip
Archive: 2017-09-07-raspbian-stretch-lite.zip
inflating: 2017-09-07-raspbian-stretch-lite.img
// SD card のパスを確認
$ diskutil list
// SD card をアンマウントする
$ sudo diskutil umount /dev/disk2s1
// dd コマンドでイメージを書き込む
$ sudo dd bs=1M if=/path/to/image/2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk2
자세한 내용은 https://www.raspberrypi.org/documentation/installation/installing-images/README.md 을 참조하십시오.운영 체제 이미지를 SD 카드에 쓴 후 몇 가지 설정을 합니다. 이 작업은 macOS에서도 진행됩니다.
ssh 사용
ssh를 사용하도록 설정합니다.boot 디렉터리 아래에 ssh라는 파일을 만듭니다.
$ cd /Volumes/boot
$ touch ssh
이 작업을 수행하면 Raspbian이 시작된 후 sshd를 시작하고 원격에서 계속 설정할 수 있습니다. 자세한 내용은 https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ 을 참조하십시오.cgroups 사용
다음은 cgroups의 cpuset과memory를 사용하기 위해 다음 설정을 진행하십시오
$ cd /Volumes/boot
$ vi cmdline.txt
cgroup_enable=cpuset cgroup_enable=memory
- dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=af816d3b-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
+ dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=af816d3b-02 rootfstype=ext4 cgroup_enable=cpuset cgroup_enable=memory elevator=deadline fsck.repair=yes rootwait
최신kernel 버전에서 설정 방법이 바뀐 것 같다cgroup_memory=1
이상의 작업을 수행하는 Raspberry PI의 테이블 수부트 및 초기 설정
위 단계에 따라 제작된 SD 카드를 Raspberry PI에 꽂고 전원을 켭니다.
시작 후 동일한 네트워크에 이름이
raspberrypi
인 인스턴스가 없으면 raspberrypi.local
이름으로 액세스할 수 있습니다.$ slogin [email protected]
// 初期パスワードは raspberry
로그인이 완료되면 호스트 이름을 변경하십시오. 파일을 수정하여 원하는 호스트 이름으로 변경합니다.이번에 나는 /etc/hostname
의 이름을 지었다.또 필요에 따라 사용자의 추가, 기본 사용자
raspi[001-003]
의 무효화 등도 실시한다.$ sudo vi /etc/hostname
// ホスト名を変更
// 必要に応じて、ユーザの追加等を行う
$ sudo reboot
reboot 후 pi
이름으로 접근 가능Docker 설치
Docker 설치
$ slogin <設定したホスト名>.local
// 必要なパッケージのインストール
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
// リポジトリの追加
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
// インストール
$ sudo apt-get update
$ sudo apt-get install docker-ce
자세한 내용은 https://docs.docker.com/engine/installation/linux/docker-ce/debian/ 을 참조하십시오.kubeadm 설치
그리고kubeadm,kubelet,kubectl을 설치합니다.
스왑을 해제합니다.Kubernetes1.8에서 교환이 유효하면 Kubelet이 시작되지 않기 때문입니다오
$ sudo dphys-swapfile swapoff
$ sudo dphys-swapfile uninstall
$ sudo update-rc.d dphys-swapfile remove
저장소 추가 및 패키지 설치$ slogin <設定したホスト名>.local
// リポジトリの追加
$ curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg|sudo apt-key add -
$ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kube.list
// インストール
$ sudo apt-get update
$ sudo apt-get install kubelet kubeadm kubectl
자세한 내용은 https://kubernetes.io/docs/setup/independent/install-kubeadm/ 을 참조하십시오.호스트 설정
마스터가 될 실례에서 다음 명령을 실행합니다.
<設定したホスト名>.local
의 옵션은 flannel을 사용하는 데 필요한 옵션입니다.$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
....
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run (as a regular user):
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join --token xxxxxx.xxxxxxxx 10.0.1.22:6443 --discovery-token-ca-cert-hash sha256:xxxxxxxxx
성공하면 위의 메시지가 표시됩니다.정보에 따라pod 네트워크를 배치합니다. 이번에는 Flannel을 사용합니다.
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl이 올바르게 작동하는지 확인하기$ kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.5", GitCommit:"cce11c6a185279d037023e02ac5249e14daa22bf", GitTreeState:"clean", BuildDate:"2017-12-07T16:16:03Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/arm"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.5", GitCommit:"cce11c6a185279d037023e02ac5249e14daa22bf", GitTreeState:"clean", BuildDate:"2017-12-07T16:05:18Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/arm"}
다음 명령을 사용하여 flannel 배포$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
현재,master 설정이 완료되었습니다.노드 설정
node로 추가할 인스턴스에서 다음 명령을 수행합니다.
$ kubeadm join --token xxxxxx.xxxxxxxx 10.0.1.22:6443 --discovery-token-ca-cert-hash sha256:xxxxxxxxx
실행--pod-network-cidr=10.244.0.0/16
후 실행kubeadm join
은 노드를 추가하고 상태도 준비됩니다.$ kubectl get node
NAME STATUS ROLES AGE VERSION
raspi001 Ready master 27m v1.8.5
raspi002 Ready <none> 1m v1.8.5
raspi003 Ready <none> 1m v1.8.5
이상 설정 완료끝내다
위 절차를 통해kubeadm를 사용하면 라즈베리 PI에서 간단하게 Kubernetes 군집을 구축할 수 있습니다.여러분도 반드시 집에서 라즈베리 파이로 쿠베르네츠 집단을 구축해야 합니다.
https://about.yahoo.co.jp/pr/release/2017/10/02a/ ↩
https://about.yahoo.co.jp/hr/workplace/welfare.html ↩
https://about.yahoo.co.jp/hr/workplace/familycare.html ↩
https://about.yahoo.co.jp/hr/workplace/vacation.html ↩
https://qiita.com/tkusumi/items/0962220a0700cb1f6eb3#노드-swap-를 사용하면 kubelet-가 다시 시작되지 않습니다. ↩
Reference
이 문제에 관하여(Raspberry PI 및 kubeadm에서 홈 Kubernetes 클러스터 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hatotaka/items/48a88ecb190e1f5e03c3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Raspberry PI 및 kubeadm에서 홈 Kubernetes 클러스터 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hatotaka/items/48a88ecb190e1f5e03c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)