如何部署一个应用

部署一个 redis 服务

在本地新建一个文件叫 redis.yaml 内容如下

apiVersion: apps/v1
kind: Deployment    #controll的类型
metadata:
  name: redis-master  #当前命名空间下Deployment唯一的Name
spec:
  replicas: 1         #Deployment下所管理的Pod数量
  selector:
    matchLabels:
      app: redis-master #唯一标识
  template: 
    metadata:
      labels:
        app: redis-master
    spec:                 #Pod配置节点
      containers:         #Pod 所包含的Container,是一个数组(Pod可以包含多个Container,建议做法: 一个Pod只包含一个Container)
      - name: redis   #Container 名称
        image: redis  #指定镜像   
        ports:
          - containerPort: 6379  #Container 暴露的端口,用于Pod内部访问
--- 
apiVersion: v1    
kind: Service    #Service(为容器提供统一的访问入口,集群内部、外网访问)
metadata:
  name: redis-master
  labels:
    name: redis-master
spec:
  type: NodePort   #指定成NodePort这样可以通过 节点的IP来访问
  ports:
  - port: 6379
    nodePort: 30008 #暴露在node节点的端口
  selector:
    app: redis-master # 通过selctor关联到了pod

执行部署

然后使用命令 kubectl apply -f redis.yaml 可以看到

deployment.apps/redis-master created
service/redis-master created

验证

成功后我们可以使用 kubectl get pods 可以看到

redis-master-7fc4fffc59-2v28j   1/1     Running   0          29s

成功后我们可以使用 kubectl get services

redis-master   NodePort    10.43.56.132    <none>        6379:30008/TCP   35s

使用telnet验证一下端口

telnet yourNodeIp 30008

(这个ip是你自己机子节点的IP。windows下面可以直接用localhost 或者自己的局域网的IP)

简单的部署方式

kubectl create deployment redis --image=redis
kubectl expose deploy redis --port=6379

总结

部署一个可以被访问的服务 需要两个东西 deployment 和 service

最近更新的
...