私たちはポッドを使用すると、マシン自体は別のポッドとポッドマシンにpingを実行する前に、ポッドは、相互にpingを実行することができ、それがserivceであれば、我々はポート番号を渡し、あなたがサービスにアクセスすることができます。出典:https://github.com/limingios/docker/tree/master/No.10
、なぜを使用して管理ポッドを向けないのですか?
- 私たちは、スケールの使用さらにreplicaSetまたはReplicationController水平展開を行うと、ポッドを終了することができます。
- 我々はドッカーイメージのバージョンを更新するために、私たちの展開を使用する場合は、古いポッドが終わって、その後、新しいポッドを作成し、IPアドレスが変更されました。
サービス
- kubectl expoeseコマンドは、外部からのアクセスのために、私たちのサービスを作成するためのポッドを与えるだろう。
- サービスの主に3つのタイプがあります。
- ClsterIP
- NodePort
- ロードバランサ
- また、あなたは、DNSを使用していますが、DNSのアドオンを必要とすることができます
サービスのデモ
- サービスを作成します。
get pod
kubectl get pod -o wide
kubectl expose pods nginx
#查看到已经创建的service
kubectl get svc
- アクセスサービス
ping 10.254.233.245
- 作成展開
cd deployk8s-master/
cd labs/
cd deployment/
more deployment_nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.12.2
ports:
- containerPort: 80
kubectl create -f deployment_nginx.yml
kubectl get pods -o wide
我々は、これらの展開にアクセスするノードのノードを入力してください
- 対応するサービスを展開作成します
kubectl get deployment
expose deployment nginx-deployment
kubectl get svc
内部サービスの展開を変更します
kubectl edit deployment nginx-deployment
PS:あなたのファイルの内容を変更するためによると、それは自動的に更新されますが、IP変更しなかった、これは強力なのサービスです。しかし、現在の形の直接変更deloymentファイル、彼はロールオーバーではないのでお勧めしません、次回の次のロールオーバーという。