Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Kubernetesのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Kubernetes
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:仮想化]] [[en:Kubernetes]] [https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ Kubernetes] はコンテナ化されたアプリケーションのデプロイ・スケーリング・管理を自動化するためのオープンソースシステムです。Kubernetes は k8s とも呼ばれます。 == Arch Linux の Kubernetes == === Minikube === MiniKubeは[[VirtualBox]]などの仮想マシン上に小さなKubernetesクラスタを構築することが出来るプラットフォームです。 Kubernetesを試してみたいという場合、完全なインストールをいきなり用意するよりもMinikubeを利用するのが良いでしょう。 Arch LinuxでMinikubeを利用するには、{{Pkg|minikube}} パッケージおよび、{{Pkg|virtualbox}}などの仮想化環境をインストールします。 実際のminikubeの操作法については[https://kubernetes.io/ja/docs/setup/learning-environment/minikube/ 公式のチュートリアル]を参照してください。 === 完全なインストール === Arch Linux で Kubernetes を使用するためには、{{AUR|kubelet-bin}}, {{AUR|kubeadm-bin}}, {{AUR|kubectl-bin}}をインストールします。 Kubernetesを実際に動作させるには、{{Pkg|docker}}や{{AUR|cri-o}}などのコンテナランタイムも予めインストールしておく必要が有ります。 さらに、AURパッケージの依存関係が不完全なため、{{Pkg|ebtables}}, {{Pkg|ethtool}}, {{Pkg|socat}}, {{Pkg|conntrack-tools}}が追加で必要です。 また、必要に応じて以下のパッケージをインストールします。 * {{AUR|cni-plugins-bin}}: [https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/ CNI(Container Network Interface)プラグイン]を動作させるのに必要なバイナリパッケージ。標準のCNI(flannel等)を利用する場合、これは必須です。 == Arch Linux の Kubectl プラグイン == [https://kubernetes.io/docs/reference/kubectl/overview/ Kubectl] プラグインは独立したバイナリであり、サブコマンドを追加して Kubectl の機能を拡張します。 Arch Linux には Kubectl プラグインの AUR パッケージが存在します: * {{AUR|kubectl-trace-git}}: kubectl を使って kubernetes クラスタの bpftrace プログラムをスケジュールします。 == 基本設定 == {{ic|kubeadm}} ヘルパーを使用するか手動で kubernetes クラスタを設定します。 === kubeadm を使う === 以下はマスターとスレーブがひとつずつの構成を取っており、両ノードとも {{ic|192.168.122.0/24}} ネットワーク内に存在し、マスターは kubernetes クラスタを {{ic|192.168.122.1}} でホストします。 また、ポッドに割り当てるIPアドレス範囲(CIDR)は利用するCNIプラグインに合わせて決定しますが、ここでは[https://github.com/coreos/flannel flannel]を利用するので、{{ic|10.244.0.0/16}} とします。 ==== マスター ==== まず、マシンの[[スワップ]]を無効にします。Kubernetesを稼働させる全てのノードにおいて、これは必須です。 {{bc|# swapoff -a}} 次に、コンテナランタイムを開始させます。{{Pkg|docker}}を利用する場合、{{ic|docker.service}}を開始します。 {{bc|# systemctl start docker.service}} それから、以下のコマンドを実行: {{bc|# kubeadm init --apiserver-advertise-address=192.168.122.1 --pod-network-cidr=10.244.0.0/16}} {{ic|kubeadm}}によってPKI(公開鍵基盤)とクライアント証明書が自動的に作成され、{{ic|kubelet.service}}が開始されます。 問題なく起動が完了したら、以下のようなメッセージが表示されます: Your Kubernetes master has initialized successfully! 新しく作成した kubernetes クラスタの管理者としてアカウントを設定します: $ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config それからポッドネットワークをデプロイします。[https://kubernetes.io/docs/concepts/cluster-administration/addons/ こちら] に様々な方法が載っています。全ての方法にはそれぞれデフォルトのポッドネットワーク CIDR が存在します。{{ic|--pod-network-cidr}} で指定した値にあわせて設定を修正してください。 ここではflannelをデプロイするので、以下のコマンドを実行: $ wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml $ kubectl apply -f kube-flannel.yml 最後に、マスターの状態を確認: $ kubectl get componentstatus ==== ノード ==== マスターの成功メッセージの最後の行に入力してクラスタに参加: kubeadm join --token <token> 192.168.122.1:6443 --discovery-token-ca-cert-hash sha256:<hash> == トラブルシューティング == === settings behind proxy === {{ic|kubeadm}} は {{ic|https_proxy}}, {{ic|http_proxy}}, {{ic|no_proxy}} [[環境変数]]を読み込みます。Kubernetes の内部ネットワークは最後の環境変数に記述します。例: export no_proxy="192.168.122.0/24,10.96.0.0/12,192.168.123.0/24" 2番目の CIDR がデフォルトのサービスネットワーク CIDR です。 また、CNI プラグインが追加で必要です: $ go get -d github.com/containernetworking/plugins $ cd ~/go/src/github.com/containernetworking/plugins $ bash ./build_linux.sh # cp bin/* /opt/cni/bin/ === fatal error: runtime: out of memory === ソースから kubernetes をビルドしたときに発生します。{{ic|zram}} 領域を設定することで回避できます: # modprobe zram # echo lz4 > /sys/block/zram0/comp_algorithm # echo 16G > /sys/block/zram0/disksize # mkswap --label zram0 /dev/zram0 # swapon --priority 100 /dev/zram0 === error when creating "xxx.yaml": No API token found for service account "default" === [https://stackoverflow.com/questions/31891734/not-able-to-create-pod-in-kubernetes stackoverflow] を見てください。 === Error: unable to load server certificate === サービスの起動時に発生することがあります。{{ic|*.key}} ファイルのパーミッションの設定が正しいか確認してください。
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Kubernetes
に戻る。
検索
検索
Kubernetesのソースを表示
話題を追加