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
운영 체제 이미지를 SD 카드에 쓴 후 몇 가지 설정을 합니다. 이 작업은 macOS에서도 진행됩니다.
ssh 사용
ssh를 사용하도록 설정합니다.boot 디렉터리 아래에 ssh라는 파일을 만듭니다.
$ cd /Volumes/boot
$ touch ssh
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
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
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
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
호스트 설정
마스터가 될 실례에서 다음 명령을 실행합니다.
<設定したホスト名>.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 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"}
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
노드 설정
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.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (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.)