作者:益林代表_610 | 来源:互联网 | 2023-09-07 10:37
deployment是k8s中部署应用最常见的一种方式。如果不需要被访问,那么只需要定义deployment即可。如果需要被其他服务访问,那么可以创建一个service与其绑定,通
deployment是k8s中部署应用最常见的一种方式。如果不需要被访问,那么只需要定义deployment即可。如果需要被其他服务访问,那么可以创建一个service与其绑定,通过访问service来访问对应的服务。
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分配任务
那么就需要这么创建