Bare-Metal LinuxにKubernetesクラスターをセットアップします
むき出しの金属LinuxサーバーでKubernetesクラスターを正常にセットアップするには、まず要件を満たし、システム構成を完了するマシンを準備し、次にContainRD、KubeAdM、Kubelet、Kubectlをインストールし、コントロールプレーンノードを初期化し、CNIネットワークプラグインをインストールし、ワーカーノードに参加し、確認を実行する必要があります。 1.静的IPで少なくとも2〜3のLinuxサーバーを準備し、スワップをオフにし、必要なカーネルモジュールとSYSCTLパラメーターを有効にします。 2。すべてのノードにContainRDをインストールし、SystemDcGroup = trueを構成します。 3. Kubeadm、Kubelet、Kubectlをインストールし、それを予約済みとしてマークし、自動的にアップグレードしません。 4.コントロールプレーンノードでkubeadm initコマンドを実行して、ポッドネットワークCIDRとコントロールプレーンIPを指定します。 5.フランネルなどのCNIプラグインを適用して、ポッドネットワーク通信を正常にします。 6. KUBEADM JOINコマンドを使用して、作業ノードに参加してクラスターに参加します。 7.オプションでメインノードの染色を取り外して、ポッドスケジューリングを許可します。 8。Nginxおよびその他のテストアプリケーションを展開して、クラスター関数を検証して、すべてのノードとポッドが正常状態にあることを確認します。プロセス全体がノード間の時間同期を確保する必要があり、ファイアウォールは必要なポートを開き、ホスト名を一意に解決し、最終的に自律的で制御可能な高性能クベルネットの生産または学習環境を取得する必要があります。
ベアメタルLinuxサーバーにKubernetesクラスターをセットアップすると、インフラストラクチャ、パフォーマンス、コスト効率の向上を最大限に制御できます。これは、生産ワークロードやKubernetesがフードの下でどのように機能するかを学習します。管理されたKubernetesサービス(EKやGKEなど)が操作を簡素化しますが、裸の金属のセットアップは内部を教え、カスタマイズを許可します。適切に行う方法は次のとおりです。

1.裸の金属マシンを準備します
Kubernetesをインストールする前に、Linuxマシン(物理サーバー)が準備が整っていることを確認してください。
要件:

- 少なくとも2〜3マシン(1つのコントロールプレーンノード、1つのワーカーノード)
- マシンごとに2つのCPUコア
- 2GB RAM(4GB推奨)
- 一意のホスト名、Macアドレス、およびProduct_uuids
- マシン間の完全なネットワーク接続
- Swap Disabled(Kubernetes要件)
-
sudo
アクセスとSSH接続
ステップ:
-
サポートされているLinux OS(Ubuntu 20.04/22.04、Centos 7/8、Rocky Linux)をインストールする
信頼できる通信のために静的IPSを設定します
-
更新システム:
sudo apt update && sudo apt upgrade -y
スワップを無効にする:
sudo swapoff -a
/etc/fstab
のスワップラインをコメントして、永続的にします。カーネルモジュールを有効にし、sysctlを構成します。
Sudo Modprobeオーバーレイ sudo modprobe br_netfilter cat << eof | sudo tee /etc/modules-load.d/containerd.conf かぶせる br_netfilter EOF cat << eof | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF sudo sysctl - システム
2.コンテナランタイム(containred)をインストールする
Kubernetesにはコンテナランタイムが必要です。 containerd
最も一般的な選択です。
containerdをインストール:
sudo apt-get update && sudo apt-get install -y containerd #SystemDをCGROUPドライバーとして使用するようにContainRDを構成します sudo mkdir -p /etc /containerd containerd config default | sudo tee /etc/containerd/config.toml #config.tomlを編集して設定します。 #[プラグイン。 "io.containerd.grpc.v1.cri" .containerd.runtimes.runc.options] #SystemDCGroup = true sudo systemctl再起動containt sudo systemctlはcontainerdを有効にします
注:
SystemdCgroup = true
を使用すると、SystemDをinit Systemとして使用する場合、kubeadm
との互換性が保証されます。
3. Kubeadm、Kubelet、およびKubectlをインストールします
これらはコアKubernetesツールです。
-
kubeadm
:クラスターを初期化します kubelet
:すべてのノードで実行され、ポッドを開始しますkubectl
:CLIはクラスターを管理します
#kubernetes aptリポジトリを追加します sudo apt-getアップデート sudo apt-get install -y apt-transport-https ca- ectificates curl curl -fssl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg - dearmor -o /etc/apt/trusted.gpg.d/kubernetes.gpg echo "deb [signed-by =/etc/apt/trusted.gpg.d/kubernetes.gpg] https://apt.kubernetes.io/kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-getアップデート sudo apt -get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
これをすべてのノード(コントロールプレーンとワーカー)で繰り返します。
4.コントロールプレーンノードを初期化します
コントロールプレーン(マスター)になるために1つのマシンを選択します。
走る:
sudo kubeadm init-pod-network-cidr = 10.244.0.0/16-control-plane-endpoint = your_control_plane_ip:6443
選択したCNIプラグインに基づいて、
--pod-network-cidr
を使用します。フランネルには、10.244.0.0/16
使用します。
初期化が完了した後:
mkdir -p $ home/.kube sudo cp -i /etc/kubernetes/admin.conf $ home/.kube/config sudo chown $(id -u):$(id -g)$ home/.kube/config
kubeadm join
コマンドを取得します。ワーカーノードを追加するためにそれを提供します。
5。ポッドネットワーク(CNI)をインストールする
Kubernetesには、ポッドが通信できるように、コンテナネットワークインターフェイス(CNI)プラグインが必要です。
フランネルをインストールします:
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
数分待ってください。ステータスの確認:
kubectlはポッドを取得-n kube -systemを取得しますすべてのポッドは
Running
ステートに到達する必要があります。
その他のオプション:Calico、Cilium(より高度な、より良いセキュリティ)。
6.ワーカーノードに参加します
各ワーカーノードで、 kubeadm join
kubeadm init
(例:
Sudo Kubeadm Join 192.168.1.10:6443 - トークン...
コントロールプレーンに戻り、ノードを確認します。
Kubectlはノードを取得します
ノードがReady
が整うまでには1分かかる場合があります。
7.オプション:単一ノード制御プレーン(ラボ用)を有効にする
テストしていて、コントロールプレーンでポッドをスケジュールしたい場合:
Kubectl Taintノード-All node-role.kubernetes.io/control-plane-
生産には推奨されません。
8.クラスター機能を確認します
簡単な展開でテストします:
kubectlは展開nginxを作成します-image = nginx kubectlは展開nginx -port = 80 -type = nodeportを公開します
実行中かどうかを確認してください。
Kubectlはポッドを取得します、SVC
NodeのIPおよび割り当てられたNodePortを介してNginxにアクセスできるはずです。
一般的な問題とヒント
- ファイアウォール:6443(APIサーバー)、10250(kubelet)、30000–32767(nodeport範囲)などのポートが開いていることを確認します。
-
クロック同期:NTP(
chrony
またはntpd
)を使用して、ノード間で時間を同期させます。 -
ホスト名解像度:各ノードでDNSまたはupdate
/etc/hosts
使用します。 - CNI障害:cidrが
kubeadm init
れたものと一致します。
前提条件に注意深く従うと、裸の金属にkubernetesをセットアップすることは難しくありません。キーは、ノード全体の一貫性、適切なネットワーキング、適切なCNIの選択です。実行したら、Prometheusなどのヘルム、イングレスコントローラー、または監視ツールを展開できます。
基本的に、手順に従って、ログを見て、 kubectl get nodes
を確認してget pods
。ほとんどの問題は、誤った設定されたContainRD、欠落しているカーネルモジュール、またはファイアウォールルールに由来しています。
それだけです - あなた自身のKubernetesクラスター、本物の鉄で走っています。
以上がBare-Metal LinuxにKubernetesクラスターをセットアップしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ターゲットハードディスクデバイス名( /dev /sdaなど)を確認して、システムディスクの誤って削除しないようにします。 2。sudoddif=/dev/zeroof =/dev/sdxbs = 1mStatus = 1mStatusを使用して、ほとんどのシナリオに適したフルディスクのゼロ値を上書きします。 3. 3つのランダムデータ上書きにSudoshred-V-N3/DEV/SDXを使用して、復元できないことを確認します。 4.オプションで、破壊的な書き込みテストのためにsudobadblocks-wsv/dev/sdxを実行します。最後に、sudohexdump-c/dev/sdx |ヘッドを使用して、それがすべてゼロで完全な安全な消去であるかを確認します。

Linuxシステムの情報とバージョンを知りたい場合は、次の手順を使用できます。1。LSB_RELEASE-Aを使用して、配布情報を表示します。 2。 /etc /os-releaseファイルを表示して、バージョンの詳細を取得します。 3. uname-rまたはuname-mrsを使用して、カーネルバージョンとシステムアーキテクチャを確認します。 4.ハードウェア情報を取得するには、LSCPU、Free-H、またはDMIDECODE(ルートアクセス許可が必要)を実行します。上記の方法はさまざまな分布に適用でき、一部のコマンドにはインストールまたは許可調整が必要になる場合があります。

Linuxのユーザーが一般的に使用するUserAddまたはAdduserコマンドを追加します。 1. userAddを使用する場合、パスワードとホームディレクトリを手動で設定する必要があります。 -mパラメーターを追加して、ホームディレクトリを作成します。 2。-s、-g、および-uなどのパラメーターを使用して、シェル、グループ、およびUIDを指定できます。 3. Adduserはインタラクティブなコマンドであり、初心者が構成を自動的に完了するのに適しています。 4。権限、ユーザー名の一意性、およびホームディレクトリの権限に注意してください。 5。ユーザーデルを使用して、誤ってユーザーとホームディレクトリを削除できます。これらの重要なポイントをマスターすると、ユーザーを効率的かつ安全に管理できます。

cronisusedusedusedusedusedusedulingonalways-ossystems、whileanacronuresuressuressursunsystystemstature n't continuouslylypowered、suthaslaptops;

Linuxシステムのホストファイルを変更するには、管理者の権限を使用して編集する必要があります。 1.ホストファイルは/etc/ディレクトリにあり、cat/etc/hostを表示できます。 2。sudoを使用して、nano/vim/geditなどの編集者で変更します。形式はIPアドレスとホスト名です。 3.変更後、DNSキャッシュをクリアするか、NetworkManagerサービスを再起動して有効にする必要がある場合があります。 4.正しい形式に注意し、頻繁に変更を避け、安全に動作する不確実なエントリについてコメントします。

installinglinux、firstStepsIncludeTingyourSystem、InstrulingentiveSoftware、situpBackUpandSecurityMeasures、およびcustomizing and Customizing and Customizing and Customizing intustomisingThe -SystemsingTheAppocrateCommandforyourdistro(E.G。、am

Linuxにソフトウェアをインストールする主な方法は3つあります。1。apt、dnf、またはpacmanなどのパッケージマネージャーを使用し、Sudoaptinintallcurlなどのソースを更新した後にインストールコマンドを実行します。 2。.DEBまたは.RPMファイルの場合、DPKGまたはRPMコマンドを使用してインストールし、必要に応じて依存関係を修復します。 3. SnapまたはFlatpakを使用して、バージョンの更新を追求しているユーザーに適したSudosnapInstallソフトウェア名など、プラットフォームにアプリケーションをインストールします。より良い互換性とパフォーマンスのために、システム独自のパッケージマネージャーを使用することをお勧めします。

choosepop!_os、ubuntu、nobaralinux、orarchlinuxforoptimalgamingminimaloverhead.2.installofficialnvidiaproprietarydriversfornvidiagpus、suseup to-datemesaandkernelverversionsionsionsionsionsipuspuspus
