K8S 3つのネットワーク:ノードネットワーク
ポッドネットワーク
クラスタネットワーク- >仮想IP - > サービスのルール
サービス:KUBE-プロキシモニタAPIサーバー、APIサーバのデータの変更は、対応するKUBE-プロキシが変更され、サービスのルールを、
サービスは、3つの動作モードを持っている:ユーザ空間、1.1 以前のバージョンを
iptablesの、1.10 の前に
IPVS 、1.11 リリース後
SVCのRedisのを削除kubectl
サービスのサービス名
サービスを説明kubectl
service.specを説明kubectl
サービスの種類:
ExternalName、 クラスタへのクラスタ参照外部のサービス 外部サービス名
CLUSTERIP、 唯一のクラスタ内通信のための
NodePort、 外部のクラスタとの通信用
ロードバランサ、仮想マシンに展開し、環境で動作する仮想マシン、クラウド環境は、ロードバランシングをサポートし、lbaas、同様のnodeportの負荷分散
作成された文書のリストサービスを
CLUSTERIP、 唯一のクラスタ内通信のための アクセスサービス最初のポイントCLUSTERIP、指しポッドIP
service.spec.portsを説明kubectl
VimのRedisの-svc.yaml
apiVersion:V1
種類:サービス
メタデータ:
名前:Redisのサービス名
名前空間:デフォルト
スペック:
選択: 選択されたポッドタグ 関連ポッド
アプリ:Redisの
役割:ロイスター
CLUSTERIP:10.97.97.97 セット CLUSTERIP
タイプ:CLUSTERIP 選択 CLUSTERIPのタイプのサービス
ポート:
-ポート:6379サービスのポート参照サービスポートバックエンドでのポッドの関係
targetPort:6379 指定されたポッドポート
-fのRedis-svc.yamlが適用kubectl 作成サービスを
SVCの取得kubectl 照会サービスを
SVCのRedisのサービス-Redisの説明kubectl 詳細
エンドポイント:10.244.1.66:6379 バックエンドアドレス、関連付けられているポッドアドレス
リソースレコード: SVC_NAMe.NS_NAME.DOMAIN.LTD。
サービス名の 名前空間の クラスタドメイン名サフィックス
クラスタのデフォルトのドメイン名サフィックス svc.cluster.local。
たとえば:ちょうど作成サービスと呼ばれるのRedis、 その後、ドメイン名を:
redis.default.svc.cluster.local。
サービスにアクセスするためのドメイン名への直接アクセス、および解決するためのポッドアドレス
nodeportのデフォルトのポート割り当て30000から32797
作成 nodeport サービス
先に引用した展開コントローラmyappの-デプロイの作成ポッドを
CPのREDI-svc.yaml myappの-svc.yaml
Vimのmyappの-svc.yaml
apiVersion:V1
種類:サービス
メタデータ:サービスの属性
名前:myappに
名前空間:デフォルト
スペック:
セレクタ:
アプリ:myappに 関連付けられたポッド
リリース:カナリア
CLUSTERIP:10.99.99.99 指定 CLUSTERIP
タイプ:NodePort 指定されたサービスのタイプ
ポート:
-ポート:80サービスポート
targetPort:80 関連するポッドポート
nodePort:30080 外部アクセスノードポート
-f myappという-svc.yamlを作成kubectl 作成サービスを
kubectl GET SVC
80:30080 / TCP
サービスポート80 マッピング ノードのポート30080
テスト
外側のノードへのアクセス よう 192.168.81.10:30080
真しばらく; カールhttp://192.168.81.30:30080/;sleep 1を行い、行われ
ExternalName
クラスタ内のポッドリソースにアクセスするには、クラスタ外の、
svc.spec.externalNameを説明kubectl
sessionAffinity
svc.specを説明kubectl
sessionAffinity <文字列> セッション維持 IP と同じIPの要求が常に同じバックエンドに送信されたポッド
kubectlパッチSVCのMyApp -p '{ "スペック":{ "sessionAffinity": "たClientIP"}}'
MYAPP SVCを記述kubectl 追加するかどうかを確認 sessionAffinityを
kubectlパッチSVC myappの-p「{ 『 スペック』:{ 『sessionAffinity』: 『なし』}}」 背中になし、それは常にに送信されませんポッド
ヘッドレス ヘッドレスサービスのヘッドレスサービスのサービスに直接ポッドIP
CP-svc.yaml myappのmyappの-headless.yaml
Vimのmyappの-headless.yaml
apiVersion:V1
種類:サービス
メタデータ:
名前:myappの-SVC
名前空間:デフォルト
スペック:
セレクタ:
アプリ:myappに
リリース:カナリア
CLUSTERIP:なし
ポート:
- ポート:80
targetPort:80
-f myappという-headless.yamlを適用kubectl
kubectl GET SVC
インストールのdig コマンドのyum-utilsのバインドをインストール-y
クエリ coreDns
kubectl GET SVC -n KUBE-システム
分析サービス
myappという-svc.default.svc.cluster.localを-t掘ります。@ 10.96.0.10
@ドメイン名サービス指定coredns
バックエンドの分析結果ポッドのIP
前回のためのサービスタイプCLUSTERIP の
myapp.default.svc.cluster.localを-t掘ります。@ 10.96.0.10
分析結果 CLUSTER-IP