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分配任务
那么就须要这么建立