K8S要約にAPIを構築し、展開するK8S可用性クラスタ:CI / CD(Centos7.2)シリーズIIを実装
はじめに:ブログのこのシリーズは、実践的に練習、K8Sクラスタは5つのアリクラウドサーバー配備を購入しているの経験した後、このクラスタは、ほぼ週K8Sについての知識を行い、長い時間のための主な研究ブログを更新されています私もちょうど、始まっこの点についてのブログ記事の公園偉大な神のedisonchouシリーズの提案参照の知識、「ON .NETのコアK8S研究と実践シリーズのインデックス(ドラフト版)、」私は仕事の前にいるので、なぜ私は記事のこのシリーズは、書くのですか一部の開発者の詳細が閉じられているものをいくつかの企業はすでに、.NET Frameworkのアプリケーションは、ゆっくりと、開発者として、使用を開始するために、.NETコア、1.0から.NETコアに移行しているのコンテナを適用しています私たちは、完全なイメージを構築するために、構築するためにジェンキンスによって開発されたプロジェクトは、港にプッシュ知って、その後、禅の道にパブリッシュタスクを構築し、うまくアドレスミラーリング、運用、保守の問題を貼り付けるだけ。私は、このプロセスについて非常に好奇心、暇な時間にもこのようなものを研究しています。さて、私たちはここに話をしましょう、ここで私は、クラスタに組み込まれて、あなた自身の経験のK8Sを共有することになり、また言って修正してください何か問題があります。
、K8Sは、高可用性クラスタの概要を構築します
コア戦略の小さな変化;;私たちは皆、安定性、拡張性、セキュリティに焦点を当て、Kubernetes自体を知っている周囲の生態系が噴火し続けました。3通りの方法で構築されたK8S:(1)コミュニティベースのプログラム:、乱雑信頼できない、アップグレードすることは困難(2)kubeadm:、エレガントなシンプル、高可用性をサポート、アップグレードしやすい、保守が容易で、文書が十分に詳しくない(3)バイナリの展開は、早期にお勧めします彼らはすぐにあきらめることができるので、さておき、保守が容易で柔軟性とアップグレードが容易なバイナリ方法を冗談、ハッハッハ、バイナリ構造体を使用して学者。私は次のように構築K8Sクラスタバイナリ、アリの雲の設定5セットを使用しました:
環境パラメータ:1.14.0ドッカー17.03.1-CEハーバー1.6.0ジェンキンスv2.150.2は、問題のあるバージョンに注意を払う必要がありますK8S、
注:クラウドサーバーを使用すると、keepalivedの設定をスキップし、仮想IPを使用しないで直接その上にIPの最初のマスターとして、仮想IPセットに(クラウド環境は、一般的に、独自の定義の仮想IPをサポートしていません)。
PS:高可用性が必須である場合、あなたは(そのようなアリクラウドSLBなど)クラウド・ロードバランシング・サービス・プロバイダを購入することができ、バックエンドは、あなたの3つのマスターノードを設定し、それがIPにネットワーク内で分散仮想IPロードを設定されています。
ないポイントため、クラスタ構造の具体的な詳細は、私は、表示されません。
K8Sに第二に、展開WebAPIの
- 準備展開YAML
エジソン周(より引用このYAMLファイル、https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_firststudy_part3.html我々はエジソン周ミラーリング倉庫を使用)、
apiVersion:アプリケーション/ V1の 種類:展開 メタデータ: 名前:K8S-デモ 名前空間:aspnetcore ラベル: 名前:K8S-デモ 仕様: レプリカ:2 セレクタ: matchLabels: 名前:K8S-デモ テンプレート: メタデータ: ラベル: 名前:K8S-デモ 仕様: コンテナ: -名前:K8S-デモ 画像:edisonsaonian / K8S-デモ ポート: - containerPort:80 imagePullPolicy:常に --- 種類:サービス apiVersion:V1の メタデータ: 名前:K8S-デモ 名前空間:aspnetcore 仕様: タイプ:NodePortの ポート: -ポート:80 targetPort:80 セレクター: 名前:K8S-デモ
このdeploy.yaml K8Sは、ここであなたのAPIに関するすべての情報を伝え、そして道の種類を介して外部アクセスを許可するようにさらされます。
aspnetcore:aspnetcore呼ばれ、ここで私たちは、名前空間を書くので、ここで、ASP.NETコアWebAPIの名前空間を展開するプロジェクトを進めて作成することに注意してください。
、ラベルによって異なるサービス間で統一されたので、ここで名前が書かれたK8S-デモを区別するK8S。
マルチインスタンス構成では、レプリカによって:2この設定はK8Sが一緒に2つのインスタンスを起動し、もちろん、あなたが数より大きい値を書き込むことができます私に語りました。
最後に、私がアクセスできる公的な方法アウトNodePortによって公開される仕様にK8Sに語ったので、ポートは30000から32767の範囲内である必要があり、知っている1の範囲であることができます。
- kubectlによってK8Sに展開
私たちは、次のコマンドを実行しておく必要があります。
名前空間「aspnetcore」を作成//名前空間aspnetcoreを作成kubectl
mkdir aspnetcore
aspnetcore CD / ファイルを書き込む上記の設定// deploy.yaml Vimの -f deploy.yamlを作成kubectl
[M7-a2-15-43 aspnetcore @ルート]#kubectl GET SVC -n aspnetcore NAME型クラスタ-IP EXTERNAL-IP PORT(S)AGEの K8S-デモNodePort 10.254.180.117 <なし> 80:8671 / TCP 4h55m
名前空間aspnetcoreで見ることができ、そこにサービスの稼働のK8S-デモは、ポート番号8671を介して外部へのアクセスを提供します。
- あなたはWebAPIのにアクセスできることを確認
まず、参照するには、ブラウザでAPIインタフェースを訪問すれば、通常の訪問ます。http://パブリックIP:8671 / API /値
その後、我々はその後、ダッシュボードに、K8S-デモの様子を見てみましょう。
aspnetcore:名前空間の選択に私たちをクリックしてください
もちろん、あなたもクリックすることができます:「名前空間」下の「クラスタ」のオプション、あなたは詳細な情報を見ることができ、対応する名前をクリックしてください。あなたは、リアルタイムダッシュボードの予備的にも、することができます(これは、我々は= 2を設定するレプリカに、その二つの容器アップとランニングがあるだろう)、ダッシュボード、展開、コンテナのグループからより詳細な情報を見ることができ、レプリカセットを含む、およびので実行します我々は、APIの動作を監視します。
- ダッシュボード伸縮WebAPIのことで
ダッシュボードでは、我々は、視覚的に、当社の展開伸縮コンテナインスタンス、特定の操作は、見ることができます:https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_firststudy_part3.htmlを、私はこれ以上言うことはありません。
第三に、要約
本論文では、高可用性を展開するものを使用の概要は、アリのクラウドクラスターをK8S、一部の学生は、それを展開するプロセスについて詳細に書くことができませんでしたどのように言いましたか?時間の制約のために、また、展開プロセスのテーマと一致していないこのシリーズは、ダッシュボードについての他の記事を参照することができ、企業は一般的に使用されていない、問い合わせ処理がまだ展開された文書を終えていることから、あなただけが知っている必要がありますすることができます。この記事の目的は、あなたがK8S上のいわゆるコンテナの配置、およびasp.netコアを体験させることです。著者は、本番環境を使用していないので、あなたが遅く、私は展開プロセスを整理して、他の人に、一定の期間を観察する必要がある、それだけで少しK8Sだ、学ぶことがたくさんあるにも新しいです。CI / CDを実装して、ジェンキンス+ K8S、ので、しばらくお待ち:ブログ記事のテーマについての通知を進めます。
これは、クラスのブログの部門のプロジェクトを使用することです。https://github.com/guozheng007/asp.net-core2.1-miaosha-project
参考文献:
エジソン周:https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_firststudy_part3.html
劉フルーツ国:https://coding.imooc.com/class/335.html(の有料コース366.00)