K8Sクラウドクラスターモデルミックスとマッチ着陸シェア

  では、「K8Sクラスタマッシュアップモデルを曇らせる、あなたがサービスのコストの50%以上を救うことがあり、記事を、」K8S +クラスタ、期間のピークを持つ負荷、サービスコスト谷が交互に法律を混ぜ仮想ノードを使用した方法を紹介し、改善サービス展開の伸縮効率。具体的な着陸手順プログラムにこの記事の基本的な操作やメンテナンスを共有するには、このようなニーズを持っている人のためのリファレンスを提供します。

展開の要件

  1. 私たちは、サービスを1日24時間を提供することができるはずです
  2. 自動的にコンテナの指定された数を拡張することができ、ビジネスのピークの到着前(評価トラフィック負荷と圧力測定に先立って、コンテナの数を決定します)
  3. 業務のピーク後に自動的にコンテナの指定された数に縮小することができます
  4. 伸縮性のサービスに自動的にサービス容量がトラフィックバーストを維持する場合を避けるために、ロードすることができます

 

 


基本コンセプト

   ドッカー

  • コンテナ:実行中のアプリケーションの形で

  • ミラー:コンテナの定義、又はの形態で包装

  • コンテナミラーサービス:ミラー倉庫

   

   K8Sハイブリッドクラウドクラスター

  • クラスタ - ホストされたバージョン、独自のバージョン、サーバレス版

  • 节点 —— Master Node、Worker Node

  • 名前空間(名前空間) 

  • コントローラのコピー(複製コントローラ)

  • レプリカセット(レプリカセット)

  • 展開(展開)

  • サービス(サービス)

  • ラベル(ラベル)

  • ストレージボリューム(音量) - PV、PVC

  • イングレス

 

 準備ミラーリング

    Dockerfileは([参照分散セッションをサポートするのに関連すると本明細書で定義されるredission-Tomcatの単一から複数のマシン展開に達成迅速な配備 ])ので、別の構成に依存ジャーに応じた数の加算、調製Dockerfileそれらの実際の状況に応じ。

TomcatのFROM:8.5.43-jdk8-OpenJDKの
#不要なファイルを削除したり、交換する、上海のタイムゾーンのコンテナエリアを変更するとき
RUN RM -rfは/ usr / local / Tomcatの/ webappsに/ * && \
RM -fは/ usr / local / Tomcatの&& /conf/context.xml \
CPは/ usr /報告このコンテンツの共有/ zoneinfoの/アジア/上海の/ etc / localtimeのの
#コピーの構成ファイルの
コピー./target/classes/redisson-tomcat/*は/ usr / local / Tomcatを/ confに/
#コピー私たちは、ジャーパッケージに依存する必要が
COPY ./dockerimage-depends/*.jarは/ usr / local / Tomcatの/ libに/
問題の解決catalina.shタイムゾーンを置き換える#
COPY ./dockerimage-depends/catalina.shは/ usr / local / tomcatに / binが/
#は、戦争のパッケージ展開コピー
コピーは./target/biz-server.warは/ usr / local / tomcatに / webappsに/ 8080を露出させ
活性化されると、Tomcatの#を実行し、デフォルトの起動手順を無効にするために
、ログcatalina.outを実行catalina.sh#の使用をフォアグラウンドで実行されているそれらを保つために、それがバックグラウンドで実行されているので、不十分な使用startup.shを印刷、エグゼクティブが撤退し、ドッキングウィンドウコンテナが脱落し、そのテール-Fを追加
#CMD [ "catalina.sh"、 "ファイル名を指定して実行"]
CMD /usr/local/tomcat/bin/startup.sh &&は、tail -f /usr/local/tomcat/logs/catalina.out

 

クラスタの作成(ホストされたバージョン)

参考ます。https://help.aliyun.com/document_detail/85903.html


VPCは、独自のネットワーク、プライベートネットワーク内の同じノード間で、ポッドの間に相互接続されてもよいです。

仮想スイッチ:より多くの選択肢利用可能な仮想スイッチ、いくつかの異なる領域

SNAT:VPCが設定SNAT NATゲートウェイを選択し、パブリックネットワークにアクセスする能力を持っていない場合は作成して、自動的にSNATルールを設定します。あなたはクラウドデータベースを使用する場合はIPホワイトリストを設定する必要があり、またはマイクロチャネルパブリック番号はIPのホワイトリストを設定し、サービスがパブリックネットワークIPを必要とし、いくつかのECSノードがパブリックIPは、ノードまたは仮想ノードなしのパブリックIPネットワークに優先して使用されています、あなたが設定する必要がありますSNATは、パブリックIPを取得します。

 

ノードの追加

参考ます。https://help.aliyun.com/document_detail/86919.html

ECSは、同じ地理的にノードを追加することができます

自動的に追加します:システムトレイに置き換えられます、元のシステムディスクは、(注意して!)リリースされます

手動で追加します:必要なソフトウェアをインストールするには、指定されたコマンドを実行する必要がECSに依存しています

 

次の図は、3つのECSは、クラスタ内のノードと仮想ノード(仮想kubelet)を加え示します

 

仮想ノードの追加

参考ます。https://help.aliyun.com/document_detail/118970.html

指定された場合にのみ、仮想スイッチをスケジュールする、あなただけの仮想スイッチ(例えば、仮想スイッチ領域杭州G、仮想ノード上のスケジューラポッドはGがにスケジュールすることができない仮想ノードサービスリソース領域に追加された利用可能なリソース指定された領域を使用することができリソース領域または他の領域H)

仮想ノード設定情報を更新することができる(例えば、仮想スイッチの交換)

 

仮想ノードは、ACK-仮想ノード・アプリケーションのディレクトリを追加することによって達成されます

 

アプリケーション(展開)を作成します。

 画像作成:リファレンスhttps://help.aliyun.com/document_detail/90406.html

テンプレート作成(YAMLテンプレート)によると:リファレンスhttps://help.aliyun.com/document_detail/86512.html


以下に示すように、ビジネスサービスの展開の要件に作成し、2つのビジュアルサービスサービスされます

 

ロードバランシング

一定レベルのロードバランシングクラスタサービスを実現する3つの方法があります。

  • 仮想クラスタIP:クラスタの外部アクセスポッドまたはノードのクラスタがアクセスすることができません

  • ネットワーク負荷分散:流通ネットワークIP内、VPCがクラスタ内に必ずしも、アクセスすることができます

  • 外部のネットワーク負荷分散:、外部ネットワークIPを割り当て、外部からアクセス可能

ビジネスサービスのために、外部ネットワークへのアクセスを必要とするので、外部のネットワーク負荷分散を作成し、ドメイン名が外部ネットワークIPに解決; 2-ビジュアルサービスのために、唯一のクラスタ内のアクセスを提供する必要があり、あなたが仮想クラスタIP(ネットワーク負荷分散の効率よりも高いを使用することができます)

 

ストレージ管理

 現在はemptyDir(暫定)、NFS(NAS)、のConfigFileをマウントする仮想ノードをサポートしています

 

NAS参照します。https://help.aliyun.com/document_detail/27518.html

NASは、ssh経由でアクセスするようにECS、ECSに取り付けることができます

 

以下の図は、NASのディレクトリはコンテナの下のディレクトリにマウントする方法を示してい

マニュアルテレスコピック

ポッド展開は手動で行うか、ズーム倍率

 

 自動開閉式

 CPUやメモリの負荷の自動伸縮

一般的に検出された負荷が閾値を超えてタンクを開始する時間がかかるため、遅延は、サービスに影響を与える可能性があり、それはタイミングストレッチを使用して、より高い規則性一方、低負荷閾値点に一方に設けられていてもよいです。

 

 タイミングテレスコピック

cronhpaコントローラによって達成

参考ます。https://github.com/AliyunContainerService/kubernetes-cronhpa-controller

 

スケーラブルなアプリケーションのタイミングを作成したテンプレート(デフォルトはGMT時間は8時間の設定減じたものが必要であることに注意してください)

 

命令の参照を更新する一切のオファーコンソール管理は、ありません。

#查看
kubectlはcronhpa cronhpa説明 -herpes- スレーブ   
#编辑の
kubectl編集cronhpa - / cronhpa-ヘルペススレーブnはデフォルト
#删除
cronhpa削除kubectlを / cronhpa-ヘルペススレーブ-nデフォルトを    

 

迅速な構築

まず、あなただけの再展開展開を完了するためにミラーを引っ張るトリガできるURL要求を取得し、後にURLが生成されます作成した展開の再デプロイ、上のトリガーを作成する必要があります。

 

 

 


ジェンキンスでは、迅速な建設サービスを実現します。

 

 

 


参考展開スクリプト

#!/ binに/ bashのの

WORK_DIR =の/ var / libに/ジェンキンス/ワークスペース/ $ 1
= /ホーム/ジェンキンス/ dockerimage-ザ・が依存depends_dir /
ビルドコンテキストドッキングウィンドウに#追加の依存のjarパッケージ、ミラーへの利便性Tomcatのディレクトリの下
のcp -R $ depends_dir $ WORK_DIR
#プレイがローカルにミラーリング
のCDの$ WORK_DIR
ドッカーは-t BIZ-サーバーを構築:.最新
位アリ雲画像に倉庫プッシュミラーリング
はsudoドッキングウィンドウタグビズ・サーバー:最新 registry.cn-をhangzhou.aliyuncs.com/biz/biz-server:latest
sudoのドッカーがプッシュregistry.cn-hangzhou.aliyuncs.com/biz/biz-server:latest
再展開発射するトリガーを通じてのオンラインを完了するために、#を
カールHTTPSを:// cs.console .aliyun.com /フック/トリガ?トークン= XXXXXXXXXXXXXXXX

 

コンテナへのアクセス

1.コンテナの名前を取得します(下記参照)

 

 

 

2.コンテナを入力するためのアクセス権を持っているECS設定Kubernetes上で次のコマンドを実行します。

kubectl幹部-itヘルペスマスター6447d58c4b-cqznfバッシュ

 

 

 

データのアクセス

マウントプレートクラウドECSに接続された1 SSH NAS

2.カタログをマウント対応、ビジネスサービスログ、写真やビジュアルサービスのログがあると

 

 

 

展開アーキテクチャ

次のようにクラスタ構造の展開要件の始まりに合わせて構築された各成分の最終的なアプリケーションです

 

 

 

 

概要

特定のコンテナは、閾値が比較的高く、サービスは時間を起動することがベースに持っていない人のために、この展開シナリオは、文書の長い、あまりにも完璧ではない点はありませんが、著者はまた、実際にピットの多くを強化している、現在、安定したクラスタにサービスを提供しています、2/3以上を要し、かつ伸縮自在非常に便利。あなたは、このようなビジネスシナリオを持って起こると公共の番号「空の山新余市技術スペース」交流を心配する必要がある場合。必要であれば、この記事では、PPTのバージョンは、ダウンロードモード用のパブリック・ホーム・ページの数が「K8S」を送信することができます。

 

 

推奨読書

K8Sクラウドクラスターミックスと一致するパターンは、あなたがサービスのコストの50%以上を救うかもしれ自己修養ITの技術スタッフ
の自己栽培技術のITマネジャー

 

著者:空、山新余市

企業の分野における実際の為替ドリップ技術と一緒に、注意を歓迎IT

 

おすすめ

転載: www.cnblogs.com/spec-dog/p/11462914.html
おすすめ