우리가 창을 사용하는 경우, 포드는 기계 자체는 그것이 serivce 경우, 우리는 포트 번호를 통과, 다른 포드와 포드 기계를 ping 할 수, 전에 서로를 Ping 할 수 있습니다, 당신은 서비스에 액세스 할 수 있습니다. 출처 : https://github.com/limingios/docker/tree/master/No.10
, 왜 사용 및 관리 포드를 직접하지 않습니까?
- 우리가 사용 ReplicaSet 또는 규모의 ReplicationController 수평 확장을 할 때, 포드는 종료 될 수 있습니다.
- 우리가 도커 이미지 버전을 업데이트하는 우리의 배포를 사용하는 경우, 오래된 포드가 끝날 다음 새 포드를 만들 것이다, IP 주소가 변경되었습니다.
서비스
- kubectl의 expoese 명령은 외부 액세스를 위해, 우리에게 서비스를 만들 수있는 창을 제공 할 것입니다.
- 서비스 세 가지 주요 유형이 있습니다 :
- 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
추신 : 파일의 내용이 자동으로 업데이트됩니다,하지만 IP를 변경하지 않은 수정에 따르면,이 강력한의 서비스입니다. 그러나 현재의 형태로 직접 변경 deloyment 파일에, 그는 롤오버, 다음 시간이 아니기 때문에 권장 다음 롤오버가.하지