deployment是k8s中部署應用最多見的一種方式。若是不須要被訪問,那麼只須要定義deployment便可。若是須要被其餘服務訪問,那麼能夠建立一個service與其綁定,經過訪問service來訪問對應的服務。node
apiVersion: apps/v1beta1 kind: Deployment metadata: name: my-nginx spec:
#副本數量 replicas: 1 template: metadata: labels: run: my-nginx spec: containers: - name: my-nginx image: nginx ports:
# 暴露容器的80端口 - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: my-nginx labels: run: my-nginx spec: ports: - port: 80 protocol: TCP nodePort: 30010
#將設置的nodePort端口映射到宿主機上 type: NodePort
#與deployment進行綁定 selector: run: my-nginx
如上建立一個nginx的應用,訪問任意節點IP:30010端口就就能夠看到nginx的web頁面。nginx
比較關鍵的是,這裏設置了deployment和service都設置了run: my-nginx,來綁定在一塊兒。web
replicas字段設置pod數量,多個pod會經過service進行負載均衡。api
建立:kubelctl apply -f ngixn.yaml(再次執行能夠更新)app
驗證:curl 127.0.0.1:30010負載均衡
若是有問題能夠經過curl
kubectl get podurl
kubectl describe pod my-nginxspa
kubectl logs my-nginx 來排除問題3d
若是是稍微複雜的應用:
master-work結構,work向master註冊,而後由master分配任務
那麼就須要這麼建立