1. Dockerをインストールする yumでdockerをインストール #サービスを開始する systemctl start docker.service systemctl で docker.service を有効にする #docker バージョンのテスト 2. etcdをインストールする yum インストール etcd -y #etcdを起動する systemctl で etcd を起動します。 systemctl を有効にする #etcdのヘルスステータスを確認するには、以下のコマンドを入力します。etcdctl -C http://localhost:2379 cluster-health #Kubernetesをインストールする yum kubernetes をインストール -y インストール後、/etc/kubernetes/apiserver ファイルを編集し、次のように KUBE_ADMISSION_CONTROL の後の ServiceAccount を削除します。 KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle、NamespaceExists、LimitRanger、SecurityContextDeny、ResourceQuota" 次に、次のプログラムを起動します (マスター)。 systemctl kube-apiserver を起動します systemctl で kube-apiserver を有効にする systemctl kube-controller-manager を起動します systemctl kube-controller-manager を有効にする systemctl kube-scheduler を起動します systemctl kube-scheduler を有効にする 次に、Node プログラムを起動します。 systemctl kubelet を起動します systemctl kubelet を有効にする systemctl kube-proxy を起動します systemctl kube-proxy を有効にする このようにして、シンプルな K8S クラスター環境が構築されました。以下のコマンドを実行すると、クラスターの状態を表示できます。 ただし、クラスター内のポッドのネットワークを均一に管理する必要があるため、オーバーレイ ネットワーク フランネルを作成する必要があり、現時点ではクラスター環境がうまく機能していません。 1. フランネルを取り付ける: yum インストール フランネル -y 2. ファイル /etc/sysconfig/flanneld を編集し、次のコードを追加します。 --logtostderr=false --log_dir=/var/log/k8s/flannel/ --etcd-prefix=/atomic.io/network --etcd-endpoints=http://localhost:2379 --iface=enp0s3 -iface はネットワーク カードの名前に対応します。 3. etcdでflanneldのキーを設定する Flannel は、複数の Flannel インスタンス間の設定の一貫性を確保するために etcd を設定するため、etcd で次の設定を実行する必要があります。 etcdctl mk /atomic.io/network/config '{ "ネットワーク": "10.0.0.0/16" }' /atomic.io/network/config このキーは、上記の /etc/sysconfig/flannel の設定項目 FLANNEL_ETCD_PREFIX に対応します。間違っていると起動に失敗します。 ネットワークは、ネットワーク セグメントを構成するために使用されます。物理マシンの IP と競合することはできません。任意に定義できますが、物理マシンの IP セグメントを避けるようにしてください。 4. 変更した Flannel を起動し、docker と kubernete を順番に再起動します。 systemctl を有効にする flanneld systemctl スタート フランネルド サービスdockerの再起動 systemctl kube-apiserver を再起動します。 systemctl kube-controller-manager を再起動します。 systemctl kube-scheduler を再起動します systemctl を有効にする flanneld systemctl スタート フランネルド サービスdockerの再起動 systemctl kubelet を再起動します systemctl kube-proxy を再起動します。 このように、アプリケーションを Docker コンテナにデプロイすると、物理 IP を介してコンテナにアクセスできるようになります。 分散アプリケーションの展開 1. SpringBoot をベースにしたフレームワークを構築します (ここでは説明しません)。デフォルトではすでに構築されています。 #java:8からjava8イメージをダウンロードします #ローカルファイルを /tmp ディレクトリにマウントします VOLUME /tmp #ファイルをコンテナにコピーします ADD demo-0.0.1-SNAPSHOT.jar /demo.jar #ポート 8080 を公開 EXPOSE 8080 #コンテナの起動後に実行されるコマンドを設定します ENTRYPOINT ["java","-jar","/demo.jar"] docker build コマンドを使用してイメージを作成します。 docker build -t デモ 。 この時点で、docker イメージを実行すると、次のように先ほど構築したイメージが表示されます。 K8Sを使用してSpringBootアプリケーションをデプロイする 1. rc ファイル demo-rc.yaml を作成します。 APIバージョン: v1 種類: レプリケーションコントローラ メタデータ: 名前: デモ 仕様: # ノード数。複数に設定すると負荷分散を実現できます。レプリカ: 1 セレクタ: アプリ: デモ テンプレート: メタデータ: ラベル: アプリ: デモ 仕様: コンテナ: - 名前: デモ #画像名image: デモ #ローカルイメージがある場合、そのイメージはウェアハウスからプルされませんPullPolicy: IfNotPresent ポート: - コンテナポート: 8080 ポッドを作成するには、次のコマンドを実行します。 kubectl create -f デモ rc.yaml 作成が成功すると、ポッドを表示できます。 ContainerCreating は作成中であることを通知します。この時点で作成ログを表示できます。 次のようにプロンプトが表示されます: redhat-cat.crt は存在しません。まず、ll コマンドを使用してファイルをチェックしてみましょう: このファイルは /etc/rhsm/ca/redhat-uep.pem を指すリンク ファイルであることがわかりますが、このファイルは存在しません。では、このファイルはどこから来たのでしょうか?答えはこのパスにあります。rhsm ソフトウェアをインストールする必要があります。インストールするには、次のコマンドを実行します。 yum インストール *rhsm* -y しばらく待つとインストールが完了します。 インストールが完了したら、ll コマンドを実行してファイルが存在するかどうかを確認します。 [root@MiWiFi-R3-srv ~]# ll /etc/rhsm/ca/redhat-uep.pem まだファイルは存在しないことがわかりましたが、手動で作成できます。 /etc/rhsm/ca/redhat-uep.pem をタッチします。 上記の操作が完了したら、まず rc を削除してから作成します。 [root@MiWiFi-R3-srv ~]# kubectl delete rc デモ レプリケーションコントローラ「デモ」が削除されました [root@MiWiFi-R3-srv ~]# kubectl create -f demo-rc.yaml レプリケーションコントローラ「デモ」が作成されました しばらく待ってから、po を再度確認したところ、正常に起動していることがわかりました。 [root@MiWiFi-R3-srv ~]# kubectl get po 名前 準備完了 ステータス 再起動 年齢 demo-hdmxs 1/1 実行中 0 1分 この時点では、LAN 経由でアプリケーションにアクセスすることはできないため、サービスを作成する必要があります。 1. サービス ファイル demo-svc.yaml を作成します。 APIバージョン: v1 種類: サービス メタデータ: 名前: デモ 仕様: タイプ: NodePort ポート: - ポート: 8080 ターゲットポート: 8080 # ノードが外部に公開するポート(30000~32767 の範囲である必要があります) ノードポート: 30001 セレクタ: アプリ: デモ 2. 次のコマンドを実行します。 [root@MiWiFi-R3-srv ~]# kubectl create -f demo-svc.yaml サービス「デモ」を作成しました 3. 作成したサービスを表示できます。 この時点で、図に示すように、ip:30001 を介してアプリケーションにアクセスできます。 アクセスできない場合は、ファイアウォールをオフにする必要があります。 systemctl 停止 ファイアウォール iptables -P 転送 受け入れ Docker+K8S クラスター環境構築と分散アプリケーション展開に関する記事はこれで終了です。より関連性の高い Docker K8S クラスター環境構築コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例
>>: vue+element で動的スキニングを実装するためのサンプルコード
Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...
mysql マスタースレーブ構成1. 準備ホスト: 192.168.244.128スレーブ: 192...
まず関数の自己呼び出しを知る必要がある関数の自己呼び出し - 自己呼び出し関数1 回限りの関数 - ...
CSS の背景: background:#00ffee; //背景色を設定するbackground-...
目次概要バーチャルドム原理実装プロセスパッチ方式sameVnode関数patchVnode関数upd...
前面に書かれた近年、ライブストリーミング業界は非常に人気が高まっています。伝統的な業界でのライブスト...
目次1. $(".box1").click() メソッドを実装する2. $(&q...
HTML にはデータ属性が含まれていることがよくあります。これらは HTML5 のカスタム属性です。...
シリアル化の実装InnoDB は 2 つの方法でシリアル化を実装します。まず、SELECT 文が明示...
操作については、こちらの公式ドキュメントを参照してください。インストール1. 古いバージョンの do...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...
CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...
<br />国内のウェブサイトが本格的に普及し、ユーザーエクスペリエンスに重点が置かれる...
目次DockerコンテナのエクスポートDockerコンテナのインポートこの記事では主に、コンテナ...