yanqiufang 发表于 2018-1-4 16:46:17

kubernetes deployment

  deployment是k8s中部署应用最常见的一种方式。如果不需要被访问,那么只需要定义deployment即可。如果需要被其他服务访问,那么可以创建一个service与其绑定,通过访问service来访问对应的服务。
https://images2017.cnblogs.com/blog/717960/201710/717960-20171018143321099-177957711.png
  

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页面。
  比较关键的是,这里设置了deployment和service都设置了run: my-nginx,来绑定在一起。
  replicas字段设置pod数量,多个pod会通过service进行负载均衡。
  创建:kubelctl apply -f ngixn.yaml(再次执行可以更新)
  验证:curl 127.0.0.1:30010
  如果有问题可以通过
  kubectl get pod
  kubectl describe pod my-nginx
  kubectl logs my-nginx 来排除问题
  如果是稍微复杂的应用:
  master-work结构,work向master注册,然后由master分配任务
https://images2017.cnblogs.com/blog/717960/201710/717960-20171018144446099-65337492.png
  那么就需要这么创建
https://images2017.cnblogs.com/blog/717960/201710/717960-20171018144615959-885872019.png
页: [1]
查看完整版本: kubernetes deployment