Today I Learn - 49
8082 ワード
Session Affinity
固定セッションによってクライアントが常に同じWeb/アプリケーション/ファイルにアクセスできるようにする技術.
サービス-ロードバランサの設定
クベルネディスにアクセスするノードを設定する必要がありますが、クベルネディス内では設定できませんので、追加のインストールが必要です.
あの
MELTAL LB
2段目ダンボール
layer 2で働きます.Arpリクエストおよびipv 4サービス、NDPリクエストおよびIPv 6サービス.
イーサネットさえあれば仕事ができます.ルーターは不要です.
技術的な欠点:負荷バランサを1つのノードにインストールするため、要求が多すぎるとパフォーマンスが低下する可能性があります.
BGPモード
実際には物理ルータが必要です.
Service - External Name
参照外部はKubednsに設定されています.CNAMEからなる.
アプリケーション-->SVC(ギャップ)-->api.google.com/monitoring/v5
Service - Endpoint
デフォルトでは、サービス名と同じ名前のオブジェクトが自動的に作成されます.
ラベルコレクタによって選択されたシードのリストがあります.
Service - Ingress
Service
プロキシ、ロードバランサクラスタIP:クボニスクラスタの内部にある<>内部 NodePort:クバーネディスクラスタ外部露出->内部 LoadBarancer:クバーネディスクラスタ外部露出->内部 外部Name:クボニスクラスタ内->外部 ClusterIP RESOURCE_TYPE: svc DOMAIN: cluster.local サービス-マルチポート
固定クライアント上のセッション nameserver:DNSサーバ 169.254.25.10 -> (nodelocaldns : DNS Cache Server) Client -> nodelocaldns -> coredns nodeocaldnsが構成されていない場合は、kube-systemでcorednsサービスのIP設定 を構成します.
Service - Headless Service
シードのIPを復元
各シードにFQDNを付与
Service - NodePort
30000-32767
ClusterIP + NodePort
https://metallb.universe.tf/
Metalb操作モード
階層2:階層2 Ethrenetネットワークのみが正常に動作する(ルータX)
BGP:ルータが必要
アプリケーション-->SVC(ギャップ)-->api.google.com/monitoring/v5
デフォルトでは、サービス名と同じ名前のオブジェクトが自動的に作成されます.
ラベルコレクタによって選択されたシードのリストがあります.
Ingress
https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/
Nginx Ingress Controlのインストール
方法1:/etc/hosts変更
方法2:curl-resolv
MySQLクライアントツールによるMySQLデータベースへのサービスの作成
固定セッションによってクライアントが常に同じWeb/アプリケーション/ファイルにアクセスできるようにする技術.
サービス-ロードバランサの設定
クベルネディスにアクセスするノードを設定する必要がありますが、クベルネディス内では設定できませんので、追加のインストールが必要です.
あの
MELTAL LB
2段目ダンボール
layer 2で働きます.Arpリクエストおよびipv 4サービス、NDPリクエストおよびIPv 6サービス.
イーサネットさえあれば仕事ができます.ルーターは不要です.
技術的な欠点:負荷バランサを1つのノードにインストールするため、要求が多すぎるとパフォーマンスが低下する可能性があります.
BGPモード
実際には物理ルータが必要です.
Service - External Name
参照外部はKubednsに設定されています.CNAMEからなる.
アプリケーション-->SVC(ギャップ)-->api.google.com/monitoring/v5
Service - Endpoint
デフォルトでは、サービス名と同じ名前のオブジェクトが自動的に作成されます.
ラベルコレクタによって選択されたシードのリストがあります.
Service - Ingress
Service
プロキシ、ロードバランサ
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80 # 서비스 포트
targetPort: 8080 # Pod의 노출 포트
kubectl run test -it --image ghcr.io/c1t1d0s7/network-multitool --rm
> host myapp-svc.default.svc.cluster.local
> host myapp-svc.default.svc
> host myapp-svc.default
> host myapp-svc
FQDN<SVC_NAME>.<NAMESPACE>.<RESOURCE_TYPE>.<DOMAIN>
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
selector:
app: myapp
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
- name: https
protocol: TCP
port: 443
targetPort: 8443
サービス-セッション依存性固定クライアント上のセッション
apiVersion: v1
kind: Service
metadata:
name: myapp-svc-ses
spec:
sessionAffinity: ClientIP
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
/etc/resolv.confnameserver 169.254.25.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
Service - Headless Service
シードのIPを復元
apiVersion: v1
kind: Service
metadata:
name: myapp-svc-headless
spec:
clusterIP: None
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
host myapp-svc-headless
myapp-svc-headless.default.svc.cluster.local has address 10.233.84.68
myapp-svc-headless.default.svc.cluster.local has address 10.233.120.26
myapp-svc-headless.default.svc.cluster.local has address 10.233.94.45
StatefulSetコントローラとHeadless Serviceを併用します.各シードにFQDNを付与
Service - NodePort
30000-32767
ClusterIP + NodePort
apiVersion: v1
kind: Service
metadata:
name: myapp-svc-nodeport
spec:
type: NodePort
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
その他のMetalb構成https://metallb.universe.tf/
Metalb操作モード
階層2:階層2 Ethrenetネットワークのみが正常に動作する(ルータX)
BGP:ルータが必要
vi ~/kubespray/inventory/mycluster/group_vars/k8s-cluster/addons.yml
metallb_enabled: true
metallb_ip_range:
- "192.168.201.200-192.168.201.220"
metallb_protocol: "layer2"
vi ~/kubespray/inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.ym
kube_proxy_strict_arp: true
ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b
kubectl get ns
kubectl get all -n metallb-system
Service - LoadBalancerapiVersion: v1
kind: Service
metadata:
name: myapp-svc-lb
spec:
type: LoadBalancer
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
Service - ExternalNameアプリケーション-->SVC(ギャップ)-->api.google.com/monitoring/v5
apiVersion: v1
kind: Service
metadata:
name: gping
spec:
type: ExternalName
externalName: www.google.com
# gping.default.svc.cluster.local
# -CNAME-> www.google.com
Service - Endpointデフォルトでは、サービス名と同じ名前のオブジェクトが自動的に作成されます.
ラベルコレクタによって選択されたシードのリストがあります.
Ingress
https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/
Nginx Ingress Controlのインストール
vi ~/kubespray/inventory/mycluster/group_vars/k8s-cluster/addons.yml
ingress_nginx_enabled: true
ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b
kubectl get ns
kubectl get all -n ingress-nginx
リソースのインポート---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: myapp-ing
spec:
rules:
#http://www.example.com -> myapp-svc:80
- host: www.example.com
http:
paths:
- path: /
backend:
serviceName: myapp-svc
servicePort: 80
### a.exam.com
### b.exam.com
### c.exam.com/help
### c.exam.com/qna
---
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-rs
labels:
app: myapp
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: ghcr.io/c1t1d0s7/go-myweb
ports:
- containerPort: 8080
テストのインポート方法1:/etc/hosts変更
192.168.201.21 www.example.com
C:\Windows\System32\drivers\etc\hosts方法2:curl-resolv
curl http://www.example.com --resolv www.example.com:80:192.168.201.23 -v
4/27作業MySQLクライアントツールによるMySQLデータベースへのサービスの作成
apiVersion: v1
kind: Pod
metadata:
name: mysql-pod
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: qwer1234
ports:
- containerPort: 3306
protocol: TCP
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
spec:
selector:
app: mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
kubectl run test -it --image ghcr.io/c1t1d0s7/network-multitool --rm
Reference
この問題について(Today I Learn - 49), 我々は、より多くの情報をここで見つけました https://velog.io/@leliko/Today-I-Learn-49テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol