1.kubectlコマンドは、クライアントツールapiserverで、あなたが達成することができ、検索リソースノードを変更するには追加および削除を。
#は、ノード情報を説明して ノードK8S-node1のDESCRIBE kubectl クラスタ情報#ビューのK8Sを kubectlクラスタ・情報 #はPODの作成と実行 #の--imageを:イメージ名を公式サイトのドッキングウィンドウ表し #の--replicasを:作成を表しており、いくつかのポッドを起動し、デフォルトでは、書くことではない 、私は実際に実行しないことを、このパラメータを削除POD開始します:#1 --dry-実行を kubectl RUN = nginxのnginxの-展開--image:1.14 -アルパイン--port = 80 = 1 --replicasを kubectl実行--generator =展開/ apps.v1#が強く、将来にとに対向している。このパラメータを削除します、あなたが使用することができます。 kubectl --generator RUN = RUN-POD / v1またはkubectl INSTEAD作成 展開GET kubectl #1/1は、このことを示しますコンテナ内のポッド、および準備ができている、再起動します= 0が再起動されていない示し ポッドをGET kubectl PODSワイド-o GET kubectl NAMEのAGEをSTATUS READY IPノードを再起動します 1/1 0 4h26m 10.244.2.2 K8S-node2でnginxの-展開-84cbfc56b6のランニング-w9n4jを #のnginxのは、ノードノード2で実行されている見ることができ、IPアドレスは、ノード2ノードのアドレスを使用して、10.244.2.2であるcni0 #クラスタ利用可能なアクセスこのアドレスにアクセス外K8Sがされていない -I 10.244.2.2カール #はポッドを削除し、コントローラは、ポッド、ポッドは、コントローラはすぐに別の新しい作成されます実行し、削除を管理 kubectlはnginxの-デプロイ-ポッドを削除します84cbfc56b6-w9n4j
2. 公開されたポート
#略語:POD(PO)、サービス(SVC)、replicationcontroller(RC)、展開(展開)、さらにreplicaSet(RS) という名前の#注意:小文字、数字、文字、または' - '構図は、下線ことができない に#をコントローラ下のポッドは、私の名前は、nginxのサービスを作成する ポッドポートをnginxの配備にマップされ#サービスポート(--port)80(--targetポート)ポートは80である kubectlデプロイメントを露出しますnginx-マイ-nginxの--name =展開--port --target-ポート= 80 = 80 = --protocol TCP kubectl SVCのGET NAMEにCLUSTERをTYPE-EXTERNAL AGEのIP-IP PORT(S) Kubernetes CLUSTERIP 10.96.0.1 <なし> 443 / TCP 7d11h マイ-nginxのCLUSTERIP 10.111.172.213 <なし> 80 / TCP 31S ポッドのそれぞれに対応する#iptablesの-サービスは、アクセスルールを生成、クラスタのIPアドレスとポートを関連付けるには終了タグセレクタ予定されている 私の-nginxのSVC説明kubectl 名前:私の-nginxの 名前空間:デフォルト ラベル:RUN =#nginxの-展開ポッドラベルであり、私の-nginxのは、ポッド上にマッピングされます 注釈:<なし> セレクター:RUN = nginxの-配布 タイプ:CLUSTERIP IP:10.111.172.213 ポート:<解除> 80 / TCP TARGETPORT:80 / TCP エンドポイント:10.244.2.2:80#エンドポイント:ポッドに特有 なし:セッションアフィニティ イベント:<なし> 各ポッドのラベルの#ビュー kubectl GETポッド--show-ラベル
3. DNS解決
#corednsを参照してください ワイドkubectl GET PODS KUBE -n -o-システムを| grepをcoredns kubectl GET SVC -n-システムKUBE NAME CLUSTER TYPE-AGEの外部IP-IP PORT(S) KUBE-DNS CLUSTERIP 10.96.0.10 <どれも> 53がありません/ UDP、53 / TCP 7d16h のyum -yバインド-utilsのインストール 、busyboxのから#を完全なドメイン名を見つける --restart kubectlのRUNクライアントを--image busyboxの--replicas = = =決して1 -it 場合は、コマンドプロンプトが表示されません、押してみてくださいを入力します。 / CAT#1の/etc/resolv.conf ネームサーバ10.96.0.10 検索default.svc.cluster.local svc.cluster.local cluster.local オプションのndotsは:5 内部使用のクラスタDNS解決#私の-nginxの名前を DIGを-t A私-nginx.default.svc.cluster.local @ 10.96.0.10 nginx.default.svc.cluster.local-私の5にA 10.111.172.213 #サービスので、どんなにポッド変更、SVC「一度作成し、永遠に使用します。」を達成、固定アクセスの入り口ポッドを提供する だけでbusyboxのでは#をあなたはnginxのアクセスするためのドメイン名を使用することができます wgetの-Oを-私の- nginxのを-q
4. ダイナミックアップグレード、パラメータを手動でSVCを変更
#展開コントローラはPODがタグセレクタによって管理される DESCRIBE、展開配備nginxのがkubectl #動的レプリカのコピー数変更 V1 = 2 --replicas:kubectlのRUN = MyAppの--image ikubernetes / MyAppの kubectl GET#モニタ展開-wを終了しないだろう 5つのに部数の#ダイナミックな展開を --replicas 5 = myappのkubectl規模な展開 #3に減少 kubectlの規模に展開--replicas 3 = myappの #サービスを作成する -展開SVC-myappのmyappの--name =を公開kubectl = 80の-port busyboxの内部#1 SVC-myappのアクセス、ポーリング結果を見ることができる のwget -O - -q SVC-のMyApp / hostname.htmlの #ポッドは、MyAppの名前付き容器でこれを見ることができる myapp-ポッドをDESCRIBE kubectl 9b4987d5-9sxgs #ポッド動的アップグレードバージョンは、第1のコントローラは、myappの名前である、第二ポッドmyappのコントロールコンテナの下であった kubectlセットの画像展開myappのmyappの= ikubernetes / myappの:V2 #動的に更新ステータス kubectl展開状態の展開のMyApp のバージョンを指定していない、指定されたバージョンに#ロールバックポッドは、以前のバージョンにロールバックを表す のV1:kubectl rollOutが使用アンドゥ展開myappの ルール#iptablesのはサービスで見ることができるとされた NAT -vnLの-t iptablesの #が欲しいのポッドクラスタ外のアクセス、タイプ:NodePortにCLUSTERIP kubectl編集SVC SVC-MyAppの SVC GET kubectl NAMEにクラスタを入力し、外部AGEのIP-IP PORT(S) Kubernetes CLUSTERIP 10.96.0.1 TCP 7d17h <なし> 443 / SVC-のMyApp NodePort 10.102.101.70 <なし> 80:30515 / TCPの2H
このとき、ノードのノードSVCは30515をリッスンし、ポートを開く、またはhttp://10.0.0.20:30515/ http://10.0.0.30:30515/を訪問するユーザーが入力したい場合は、nginxのページを取得することができます: NodePort CLUSTERIPに、何が悪かったのか、設定ファイルの最上部には、プロンプトになります。
参考ブログ:http://blog.itpub.net/28916011/viewspace-2213635/