「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Kubernetes]] --Kubernetesの構築 --[[Kubernetesの運用]] --[[Kubernetesの監視]] *目次 [#zd508e96] #contents *概要 [#kb5cd095] たまたまオンプレ構築の話があったので調査。 *タイプ [#x3a27d1b] -以下のような、様々なタイプが在るので、コレは、~ もう、「マネージド・サービス」がイイよね(普通は)。 -実際、[[FgCF>https://techinfoofmicrosofttech.osscons.jp/index.php?FgCF%20%28Financial-grade%20Cloud%20Fundamentals%29]] の [[W-AF - Security>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Well-Architected%20Framework%20-%20Security]]では、~ 「CaaSは Managed 型のサービスを使う。」と言われている。 **Single node [#f8ba21f4] -全コンポーネントを 1 つのサーバで起動。 -テスト、学習、開発用。 **Single head node, multiple workers [#k35eeb25] 1つの[[マスタ>#x3a054be]]と複数の[[ノード>#w630aafb]] **Multiple head nodes with HA, multiple workers [#jdd04eb8] -HA 構成の複数の[[マスタ>#x3a054be]]と、複数の[[ノード>#w630aafb]] -API サーバの入り口にはロードバランサがあり、 -スケジューラとコントローラマネージャはリーダーを選択します。 -なお、etcd はシングルノードのまま。 **HA etcd, HA head nodes, multiple workers [#r1b4da82] -HA 構成の複数の[[マスタ>#x3a054be]]と、HA 構成の複数の[[ノード>#w630aafb]] -HA 構成の [[etcd>Kubernetes#f3f1e957]] はマスタノードとは別のノードでクラスタて化。 *プロタクト [#h2c07a89] **ツール [#w281ec48] ***kubeadm [#we7fe533] [[Kubernetes The Hard Way>#lbcd59f4]]の手順と比べ、~ 比較的容易にクラスタを構成するためのCLI -Kubernetesが提供しているKubernetes公式の環境構築ツール -最新バージョンの環境のインストールが可能 -対応するOSなどと幅広い --Ubuntu 16.04以上 --Debian 9(Stretch) --CentOS 7 --Red Hat Enterprise Linux 7 --Fedora 25/26 → [[kubeadmでのインストール手順>#ya8fa130]] ***conjure-up [#oc8a619d] -Ubuntuなどで推奨されている方法・ツール。 -インストール作業を自動で行う。 ***Tectonic [#d1c9aa04] -CoreOSが提供しているディストリビューション ***kubespray [#d96b7c9c] -Ansibleベースの構築ツール -高度な Ansible Playbook。旧名は kargo。 -AWSやGCPなどのクラウド環境や、~ ベアメタル(RHELなどのOS)に対応 -マルチノードクラスタを構築できる。 ***[[Helm>Helm Charts]] [#fbdef74f] ***[[Rancher>Rancher Charts]] [#l5c4c3b5] **学習用 [#a35004d0] ***[[Docker for Windows>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows]]/Mac [#w2a38c40] ***Minikube [#rfb3f886] VirtualBox 上で実行されるために作られた、とてもシンプルなツール ***k3s、MicroK8s [#lb9a9f69] [[Minikube>#rfb3f886]]のような仮想マシンを~ 利用せずにK8sを動かすことができる。 -Rancher Labs社:k3s --様々な機能が削られている。 --MasterとNodeで分散稼働する。 --EgdeコンピューティングやARMバイナリで動く --IoTなどのスモールデバイス向き。 -Canonical社:MicroK8s --ワンコマンドでK8sが実行環境を作ることができる。 --MasterとNodeという分散動作せず、冗長性はない。 --開発向けのシングルK8sを動かすことに特化。 ***hyperkube [#sf9ea8b9] K8s自体をdockerベースで起動する方法 **クラウド [#d561a0f6] ***Azure [#i18b7d44] -AKS ***AWS [#pf3426fa] -EKS -kops:AWS用 --K8sクラスタ構築のCLI --AWSのみ公式サポート --GCEやOpenStackはベータ版 --インフラ構成管理ツールである~ Terraformの構成ファイルを生成できる。 -kube-aws:AWS用 ***GCP [#p4706079] -Google Kubernetes Engine(GKE) **その他 [#h212bb73] ***kubicorn [#k74108e0] [[kubeadm>#we7fe533]]ベース ***[[kubeadmでのインストール>Kubernetesのインストール]] [#ya8fa130] *参考 [#t4efea87] **Qiita [#gd21561e] ***わりとゴツいKubernetesハンズオン [#x019459c] Docker for Desktop(MAC)とEKSによる手順。 -数時間で完全理解!わりとゴツいKubernetesハンズオン!!~ https://qiita.com/Kta-M/items/ce475c0063d3d3f36d5d -今度はあんまりゴツくない!?~ 「わりとゴツいKubernetesハンズオン」そのあとに~ https://qiita.com/Kta-M/items/83db480075caabcb0b7a ***初学者がKubernetesをはじめてみた [#hf0a1743] Minikubeによる手順。 -#1 Minikube導入編~ https://qiita.com/theFirstPenguin/items/5266300214de6d7c7228 -#2 HelloWorld Podをデプロイしてcluster外からアクセスする~ https://qiita.com/theFirstPenguin/items/4342500d9d0eef289dc7 -#3 nodeのpvとホストvolumeを同期し、podの中にpvcを設定するなど~ https://qiita.com/theFirstPenguin/items/51235c48dc680d9f209d ***Raspberry PiでおうちKubernetes構築 [#gc15436d] [[Raspberry Pi]]([[Rasbian]])上で、[[kubeadm>#we7fe533]]を使用した手順。 -【物理編】~ https://qiita.com/go_vargo/items/d1271ab60f2bba375dcc -【論理編】~ https://qiita.com/go_vargo/items/29f6d832ea0a289b4778 ***一足遅れて Kubernetes を学び始める [#d62f0090] 環境選択で、GKE → Docker For Mac → [[Raspberry Pi]]([[Rasbian]])と変遷し、~ その後、[[Raspberry PiでおうちKubernetes構築>#gc15436d]]より深い所までの構築をしている。~ ただし、[[kubectl]]一本槍で、[[Helm Charts]]や[[Rancher Charts]]などは使用しない。 -01. 環境選択編~ https://qiita.com/silverbirder/items/34b823c1a4449d40e610 -02. Docker For Mac~ https://qiita.com/silverbirder/items/d1aa368568885df2e44f -03. Raspberry Pi~ https://qiita.com/silverbirder/items/cfaaba136b74b3140902 -04. kubectl~ https://qiita.com/silverbirder/items/7ae773b6519b940b5be4 -workloads --05. その1~ https://qiita.com/silverbirder/items/7041aa5d4126a6784d59 --06. その2~ https://qiita.com/silverbirder/items/d3522237b28703a9adb6 --07. その3~ https://qiita.com/silverbirder/items/937e1b5f6b3589452932 -discovery&LB --08. その1~ https://qiita.com/silverbirder/items/3a46ab92b45cdcc56ccd --09. その2~ https://qiita.com/silverbirder/items/f6290a7868849d57b9f1 -config&storage --10. その1~ https://qiita.com/silverbirder/items/cb17f02f52c7b5c2aafd --11. その2~ https://qiita.com/silverbirder/items/8d7a5473fa6969954e21 -12. リソース制限~ https://qiita.com/silverbirder/items/5c0703f8fa055ade9f21 -13. ヘルスチェックとコンテナライフサイクル~ https://qiita.com/silverbirder/items/8df21f399c453b9f8e51 -14. スケジューリング~ https://qiita.com/silverbirder/items/cae4649d9f9336bc01fd -15. セキュリティ~ https://qiita.com/silverbirder/items/8ea729949ab3bb4cf540 -16. コンポーネント~ https://qiita.com/silverbirder/items/a68499a10dd00c192947 ***Kubernetes The Hard Wayする [#k3ec5fa0] [[Kubernetes the hard wayのORG(GCP)版>#h8933c14]]を参考にしているらしい。 -https://qiita.com/sotoiwa/items/2b22dc21d88c7822e44b ***Kubernetes the hard way を初学者目線で解説する [#b3ab783f] [[Kubernetes the hard wayのVagrant版>#ib4d9f97]]を参考にしているらしい。 -#1 全体像を理解する~ https://qiita.com/theFirstPenguin/items/1f702af92f4eee83f398 -#2 Vagrantでオンプレ環境構築~ https://qiita.com/theFirstPenguin/items/eb7098c7a951fb12636e -#3 サーバー/クライアント証明書の準備~ https://qiita.com/theFirstPenguin/items/4d771068589f5dab6cc0 -#4 クラスターコンポーネントの設定ファイルを生成する~ https://qiita.com/theFirstPenguin/items/09076335cb46cbfc05e2 -#5 etcdサーバーを設定する~ https://qiita.com/theFirstPenguin/items/7e247021ecadb82ac8ec -#6 Control Plane コンポーネントを設定する~ https://qiita.com/theFirstPenguin/items/3dc4a6aadd91908d4435 -#7 Workerノードの設定~ https://qiita.com/theFirstPenguin/items/e3279a34aea28c3c946f -#8 WorkerノードのTLS証明書作成自動化~ https://qiita.com/theFirstPenguin/items/f16488c48711572571df -#9 kubectlのリモートアクセス設定~ https://qiita.com/theFirstPenguin/items/8acc282659207f315301 -#10 RBAC for Kubelet Authorization~ https://qiita.com/theFirstPenguin/items/0a27dfc09898df3317d7 -#11 Podネットワークの構築~ https://qiita.com/theFirstPenguin/items/3630d5894485b679e80d **さくらのナレッジ [#yce0a829] ***入門 [#mfc46000] -管理入門 --kubernetesによるDockerコンテナ管理入門~ https://knowledge.sakura.ad.jp/3681/ --続・KubernetesによるDockerコンテナ管理入門~ https://knowledge.sakura.ad.jp/14380/ -構築入門 --2019年版・Kubernetesクラスタ構築入門~ https://knowledge.sakura.ad.jp/20955/ ***ツール [#s8d78153] -簡単にローカルKubernetes環境を構築できるツール「Minikube」~ https://knowledge.sakura.ad.jp/15320/ -Google発のコンテナアプリケーション開発支援ツール~ 「Skaffold」や「Kaniko」を使ってみる~ https://knowledge.sakura.ad.jp/15321/ -マイクロサービスアーキテクチャ向けにサービスメッシュを提供する~ 「Istio」の概要と環境構築、トラフィックルーティング設定~ https://knowledge.sakura.ad.jp/20489/ -Kubernetes環境に特化したCI/CDツール「Jenkins X」を試してみる~ https://knowledge.sakura.ad.jp/23077/ **サイボウズエンジニアのブログ [#t9b2b646] カテゴリーの記事一覧 - Cybozu Inside Out ***Kubernetes [#u298dd8e] https://blog.cybozu.io/archive/category/Kubernetes ***Neco [#c261e67c] https://blog.cybozu.io/archive/category/Neco **Kubernetes The Hard Way [#lbcd59f4] ***概要 [#y99f9513] -K8s構築の学習用のコンテンツ --学習用に最適化 --本番環境での使用を想定していない。 --コミュニティのサポートは限定的。 -ポイント --Ubuntu Server 18.04 の 3 Master、3 Workerノード構成 --各k8sコンポーネントは公式のバイナリを使用し、Systemdサービスとして稼働。 --インストール ---各ノード~ 「kubelet」や「flanneld」といったノード管理用コンポーネント ---マスターノード~ ・etcdといった設定管理用のデータベース~ ・「apiserver」「controller-manager」「scheduler」といった管理用コンポーネント ***GCP版 [#h8933c14] -GitHub - kelseyhightower/kubernetes-the-hard-way:~ Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.~ https://github.com/kelseyhightower/kubernetes-the-hard-way ***VirtualBox版 [#ib4d9f97] -GitHub - mmumshad/kubernetes-the-hard-way:~ Bootstrap Kubernetes the hard way on Vagrant on Local Machine. No scripts.~ https://github.com/mmumshad/kubernetes-the-hard-way/tree/master/docs ***...版 [#paf592b6] 他にも色々、在るらしいが。 **IT Search+ [#i3250356] [[コチラ>Kubernetes#j81f922c]]の構築に関する部分を抜粋したもの。 -[[...>Kubernetes#j81f922c]] -[3]Kubernetesを試す~ Minikube / Docker for Mac / Play with Kubernetes classroom~ https://news.mynavi.jp/itsearch/article/devsoft/4252 -[[...>Kubernetes#j81f922c]] -[[[11]k8s構築ツールの選択肢「Rancher」>Rancher Charts#b95b4804]] -[[[12]k8s構築ツールの選択肢「Helm」>Helm Charts#c205a2fc]] -[13]k8s構築ツールの選択肢「Kubespray/kops」~ https://news.mynavi.jp/itsearch/article/devsoft/4909 -[[...>Kubernetes#j81f922c]] -[14]その他の学習用サービス - MicroK8s/k3s/Katacoda~ https://news.mynavi.jp/itsearch/article/devsoft/4962