Linux システムで Kubernetes コンテナ オーケストレーションを使用する方法

王林
リリース: 2023-06-18 12:14:32
オリジナル
1431 人が閲覧しました

クラウドネイティブ アプリケーションの台頭により、Kubernetes はコンテナ オーケストレーションの事実上の標準になりました。 Kubernetes はオープンソースであり、さまざまな Linux ディストリビューション上で実行できるため、Linux システムで Kubernetes コンテナ オーケストレーションを使用するのが非常に一般的です。この記事では、Linux システムに Kubernetes をインストールして構成する方法、およびコンテナ オーケストレーションに Kubernetes を使用する方法を紹介します。

  1. Kubernetes のインストール

Linux システムに Kubernetes をインストールするには、通常、次の手順が必要です。

1.1 Docker のインストール

Kubernetes が原因Docker をコンテナー ランタイムとして使用するため、最初に Docker をインストールする必要があります。 Ubuntu システムでは、次のコマンドを使用して Docker をインストールできます。

sudo apt-get update
sudo apt-get install docker.io
ログイン後にコピー

CentOS システムでは、次のコマンドを使用して Docker をインストールできます。

sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker
ログイン後にコピー

1.2 Kubernetes のインストール

Ubuntu システムの場合 CentOS システムでは、次のコマンドを使用して Kubernetes をインストールできます:

sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
ログイン後にコピー

CentOS システムでは、次のコマンドを使用して Kubernetes をインストールできます:

sudo yum install -y epel-release
sudo yum update -y
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet && sudo systemctl start kubelet
ログイン後にコピー
  1. Configure Kubernetes

2.1 マスター ノードの初期化

Kubernetes クラスターでは、マスター ノードがクラスター全体の管理を担当します。マスター ノードを初期化するには、次のコマンドを実行する必要があります。

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
ログイン後にコピー

このコマンドは、必要なコンポーネントをインストールし、ノードに参加するためのコマンドを生成します。実行コマンド出力の最後の数行には、次のようなノードに参加するためのコマンドが含まれます。

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef 
    --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
ログイン後にコピー

このコマンドの出力は一意であり、マスター ノードにのみ適用されることに注意してください。

2.2 ワーカー ノードへの参加

ワーカー ノードを Kubernetes クラスターに追加するには、前の手順で出力されたノード参加コマンドを実行する必要があります。例:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef 
    --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
ログイン後にコピー

このコマンドを実行すると、必要なコンポーネントがインストールされ、ワー​​カー ノードがクラスターに追加されます。

2.3 ネットワーク プラグインのインストール

Kubernetes では、ポッドにネットワークを提供するためにネットワーク プラグインが必要です。一般的に使用されるネットワーク プラグインには、Flannel や Calico などがあります。ここでは、Flannel をインストールすることを選択します。 Flannel をインストールするには、次のコマンドを実行できます。

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
ログイン後にコピー
  1. Kubernetes を使用したコンテナ オーケストレーション

これで、Linux システムに Kubernetes が正常にインストールされ、構成されました。次に、Kubernetesをコンテナオーケストレーションに使用する方法を紹介します。

3.1 デプロイメントの作成

Kubernetes では、デプロイメントはポッドを作成および管理するための抽象化です。デプロイメントを作成するには、kubectl コマンドを使用します。たとえば、nginx という名前のデプロイメントを作成するには、次のコマンドを実行できます:

kubectl create deployment nginx --image=nginx
ログイン後にコピー

このコマンドは、Docker Hub 上の nginx イメージを使用して、nginx という名前のコンテナーをデプロイします。

3.2 デプロイメントの編集

デプロイメントを変更するには、kubectl editdeployment コマンドを使用できます。たとえば、nginx デプロイのレプリカの数を 3 に変更するには、次のコマンドを実行します。

kubectl edit deployment nginx
ログイン後にコピー

これにより、yaml ファイルを変更できるエディタが開きます。レプリカ フィールドの値を 3 に変更し、保存してエディタを終了します。

3.3 サービスの公開

Kubernetes では、サービスはポッドのネットワーク エンドポイントを公開するために使用される抽象化です。デプロイメントのサービスを公開するには、kubectl Expose コマンドを使用できます。たとえば、nginx デプロイメントのサービスを公開するには、次のコマンドを実行します。

kubectl expose deployment nginx --port=80 --type=NodePort
ログイン後にコピー

このコマンドは、nginx という名前のサービスを作成し、クラスター内のすべてのノードのポート 80 に公開します。

3.4 デプロイメントの拡張

デプロイメントを拡張するには、kubectlscale コマンドを使用できます。たとえば、nginx デプロイメントのレプリカの数を 5 に拡張するには、次のコマンドを実行できます。

kubectl scale deployment nginx --replicas=5
ログイン後にコピー

3.5 管理ステータス

デプロイメントのステータスを表示するには、kubectl指示。たとえば、すべてのデプロイメントとそのステータスを表示するには、次のコマンドを実行できます。

kubectl get deployments
ログイン後にコピー

このコマンドは、クラスター内のすべてのデプロイメントの名前、必要な数量、使用可能な数量、およびステータスを出力します。

概要

この記事では、Linux システムに Kubernetes をインストールして構成し、コンテナ オーケストレーションに Kubernetes を使用する方法を学びました。これらのスキルは、クラウド ネイティブの世界に参入したい開発者やシステム管理者にとって必須です。

以上がLinux システムで Kubernetes コンテナ オーケストレーションを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート