シーン:
効果をglusterfs:glusterfsを通じて共有データに複数のホストを許可します。(すなわち、分散ファイルストレージ)
複数のノードのノードに配備K8S:
シーン1:各更新開始は、おそらく別のノードのノードに切り替えているポッド。しかし、ファイルを読んだ後、あなたが起動するたびにもショーに、最後の操作を呼び出すために、この時間を必要と便利なglusterfs。
シーン2:この状況は非常に完全にストレージを集中さglusterfsとして、ポッドを保持する必要性によって生成され、中央に格納されたログ(例えば、)。
以上の2つのケースは、直接次のコードを貼り付け通信および対話ポッドglusterfsを示します。
K8Sホストは、オペレーティングシステムは、CentOSのLinuxリリース1810年7月6日を統一します。
IP | 役割 | K8Sバージョン | コンフィギュレーション |
192.168.133.128 | マスター | v1.14.2 | 図2c 2G |
192.168.133.129 | ノード2 | v1.14.2 | 図2c 2G |
192.168.133.130 | ノード3 | v1.14.2 | 図2c 2G |
Glusterfsホスト状況
IP | 役割 | Glusterfs | コンフィギュレーション |
192.168.133.131 | 単一ノードの操作 | glusterfs 6.6 | 図2c 2G |
K8Sビルドクラスタ:https://www.kubernetes.org.cn/5462.html
インストールGlusterfs:
ここだけK8Sから開始するGlusterfsポイントを作成します。
#CAT GlusterFS-endpoints.jsonの[マスターGlusterFS @ルート]
apiVersion:v1の####バージョン番号は説明していない
ようなものを:型エンドポイント####宣言は、直接ラインにコピー作成された
メタデータ:
名前:GlusterFS、ボリューム ####エンドポイントを作成する名前、簡単に遊びます。
サブセット:
-アドレス:
- IP:192.168.133.131 IP #### GlusterFS
ポート:
-ポート:20 ####このポートは、それが何を意味するのか、単に書き込みを理解していません。
################################################## #######
[マスターGlusterFS @ルート]#猫のPV-demo.yaml
apiVersion:###### v1のバージョンが説明されていない
種類:タイプPersistentVolume ######宣言が作成された
メタデータ:
名前:トン、Gluster ##### PV名#は簡単に遊ぶ作成
:スペック
容量:######容量属性
ストレージ:7G ######容量サイズ
accessModes:######モードを搭載
- ReadWriteMany ###### ReadWriteMany:複数のノードがReadOnlyManyを書き込む:読み取り専用マルチノードReadWriteOnce:単一ノードのリーダ3に
persistentVolumeReclaimPolicy:3人にリサイクル########耐久特性:リサイクルは:再度使用する前に必要打ちました。削除:使用されていません。保持:手動回復
GlusterFSを:
エンドポイント:「GlusterFS-ボリューム」我々は上記で作成したエンドポイント##### PV使用、エンドポイントの名前
パス:「プロジェクト」ボリューム名##### glusterfsが作成された:これは非常に重要である、ない、間違ったポッドは、上のマウントされます。(多くの投稿が^ _ ^それを説明していない)
読み取り専用:#####偽読み取り専用モードがfalseに設定されています
################################################## ##############
[ルートマスターGlusterFS @]#CAT PVC-demo.yaml
種類:PersistentVolumeClaim #####宣言型
apiVersion:v1の
メタデータ:
名前:西安GlusterFS #### PVC名のカジュアルなプレイ。
スペック:
accessModes:
- ##### ReadWriteMany接続モードを読み書きモード
資源:
要求:
ストレージ:作成した一般的なPVと一致する(以下PVより)2G #####アプリケーションのサイズ、。PVCは、自動的に一番近いのとまったく同じでない場合、PVが作成されたと一致するようになります。
################################################## #################
行われ、基本的な作業の前に、あなたはPVCをマウントするには、以下のPODを作成することができ、および例を参照してください。
[マスターGlusterFS @ルート]#猫のnginxの-deployment.yaml
apiVersion:アプリ/ V1 ###########バージョン番号、説明していない
種類:展開タイプ######
メタデータ:
名前:web02-展開######展開名は、簡単に遊ぶ
:ラベル
WEB02:ちょうどからnginxの######ラベル、
スペック:
レプリカ:###### POD開始の2数だけ書き込みを。
セレクター:
matchLabels:
WEB02:nginxの######ラベルフォーマット。。書き込まなければならない、すべての最高のラベルが、良い区別同じです。
テンプレート:
メタデータ:
ラベル:
WEB02:nginxの####### PODラベル
仕様:
コンテナ:
-名前:nginx02 ###### POD名
イメージ:nginxの######イメージ名
ポート:
- containerPort外部暴露の80 ######ポート番号
volumeMounts:######マウント
-名前:WWW #####と、次のボリュームこれは、ボリュームの名前を呼び出しているので、同じように名前を付ける
MOUNTPATH:を/ usr / share / nginxの / htmlの##### どのようなパスはPODのマウントする
#:ボリュームを#####文をマウントする
-名前:WWW ######宣言volumeMounts上に呼び出すために、名前をマウント
persistentVolumeClaim:######永続要求
claimName:西安- glusterfs ###### ######選択PVC名は、上記で作成しました。
################################################## ###############
上記の文書はするために、我々は次に作成kubectlを使用するように設定されています。
1は、-f glusterfs-endpoints.jsonを作成kubectl
2、-f PV-demo.yamlを作成kubectl
3、-f PVC-demo.yamlを作成kubectl
4、-f nginxの-deployment.yamlを作成kubectl
下で実行状況を表示するために私達を作成したら:
[マスターGlusterFS @ルート]#kubectl GET EP -oワイド
NAME AGE ENDPOINTS
エンドポイントGlusterFS-ボリューム我々が作成した192.168.133.131:20 93メートル
のhttpd 10.244.1.43:8080,10.244.2.33:8080,10.244.2.36:8080 27H
Kubernetes 192.168 .133.128:6443 4d13h
nginxの10.244.1.41:80,10.244.2.32:80,10.244.2.37:80 2d3h
私たちが作成したポッドWEB02 10.244.1.48:80,10.244.2.41:80 82メートル
[ルート@マスターglusterfs]#kubectl GETポッド-l WEB02 = nginxの
NAME READY STATUSの再起動のAGE
WEB02展開-6f4f996589-4gw4z 1/1 0 88メートル走行
0 88メートルを実行WEB02-展開6f4f996589-m28nh 1/1
[マスターglusterfs @ルート]#kubectl GET PV
NAME容量アクセス・モードRECLAIMポリシーステータス請求STORAGECLASS理由AGE
トングgluster 7G RWXリサイクルバウンドデフォルト/西安-glusterfs 91メートル
[マスターglusterfs @ルート]#kubectl GET PVC
NAMEのSTATUSボリューム容量アクセス・モードSTORAGECLASS AGE
西安-glusterfsバウンドトングgluster 7G RWX 93メートル
作成され、その後、我々は、外部のホストアクセスで使用するためのサービスを作成します
[マスターGlusterFS @ルート]#のCAT nginx_service.yaml
apiVersion:v1の
種類:サービス######宣言サービスの種類
のメタデータ:
ラベル:
WEB02:nginxの#######ラベル
名:WEB02 ###### #サービス名の
名前空間:デフォルト
仕様:
ポート:
-ポート:K8Sに使用80 #######ピンservcie内部サービスの各ノードアクセスの使用、外部ネットワークにアクセスすることはできません。
ポート番号80 #######ポッド露出したポート番号は、バックエンド・サービスを提供する:TARGETPORT
nodePort:30099 #######外部ネットワークにサービスを提供する、ローカル・ノードのポート番号にマッピングされた
タイプ: nodePort #######はnodeport上記nodeportタイプ有効と宣言されました。
セレクター:
WEB02:nginxの###########選択肢ポッドラベルWEB02:nginxののポッド協会、我々はPODを作成するときに、PODを作成の上見ることができるPODラベルに果たしました。
################################################## ################
のは、上記のポッド2団体で作成したサービスを作成してみましょう。
-f nginx_service.yaml作成kubectl
関連するケースの流通サービスを参照するには、次のコマンドを使用します。
[マスターglusterfs @ルート]#kubectl GET SVC
NAME型クラスタ-IP EXTERNAL-IP PORT(S)AGE
のhttpd NodePort 10.1.26.50 <なし> 80:30089 / TCP 28H
kubernetes CLUSTERIP 10.1.0.1 <なし> 443 / TCP 4d14h
nginxのNodePort 10.1.241.95 88 <なし>:30088 / TCP 2d4h
80 WEB02 NodePort 10.1.168.227 <なし>:30099 / TCPの94メートル
[マスター@ルートglusterfs]は、#は、SVC WEB02説明kubectl
名:WEB02
名前空間:デフォルト
ラベル:WEB02 = nginxの
注釈:<なし>
セレクター:WEB02 = nginxの
種類:NodePort
IP:10.1.168.227
ポート:<解除> 80 / TCP
TargetPort:80 / TCP
NodePort:<未設定> 30099 / TCP
エンドポイント:10.244.1.48:80,10.244.2.41:80
セッションアフィニティ:なし
外部トラフィックポリシー:クラスタ
イベント:<なし>
私たちは展開され、我々のテスト・アクセス・サービスされています。Glusterfsページが最後に自分で変更、またはファイルに直接マウントされていません。