• Kubernetes 部署应用


    一、概念

    1、Pod

    • k8s 调度的最小单元,一个 pod 包含一组容器,一个 pod 不会跨越多个工作节点
    • pod 相当与逻辑主机,每个 pod 都有自己的 IP 地址
    • pod 内的容器共享相同的 IP 和端口空间
    • 默认情况下,每个容器的文件系统与其他容器完全隔离

    2、Deployment

    • 可以更好地做弹性扩容,负载均衡。可以实现无人值守

    3、Service

    • 实现多个pod的统一访问入口

    二、实践

      kubernetes 安装https://www.cnblogs.com/fanxp/p/12076982.html

    1、nginx.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deplayment
    spec:
      selector:
        matchLabels:
          app: nginx
      # 数量
      replicas: 2
      template:
        metadata:
          labels:
            app: nginx    
        spec:
          containers:
          - name: nginx
            # 指定镜像
            image: nginx:alpine
            # 指定暴露端口
            ports:
            - containerPort: 80

    ---

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      ports:
        # service 内部访问端口
      - port: 8080
        # pod 端口
        targetPort: 80

     2、在master 中执行 

    kubectl apply -f nginx.yaml

    3、查看pod运行情况

    kubectl get pod -o wide

     在任意一台node中:curl 10.244.2.2 

     4、查看service运行情况

    kubectl get service
    或
    kubectl get svc

     在任意一台node中:curl 10.96.46.205:8080

     5、查看service是否有负载均衡

    随便进入一个pod中修改一下nginx的index.html

    kubectl exec -it nginx-deplayment-5c559d5697-2r7br sh
    # 修改html
    vi /usr/share/nginx/html/index.html

    多访问几次Service,发现内容发生了变化

    6、通过域名访问service

    coredns是一个DNS服务器,每当有新的service被创建,kube-dns会添加该service的dns记录。cluster中的pod可以通过{service_name.namespace_name:port}访问service

    在任意pod中:wget -q -O - nginx-service.default.svc.cluster.local:8080  或 wget -q -O - nginx-service.default:8080

  • 相关阅读:
    mysql学习笔记(七)
    Mysql学习笔记(八)
    vcpkg安装库
    nvm node版本管理工具
    Node.js版本管理工具nvm
    mysql安装后启动及navicat绿色版
    蚁景Web安全12期笔记
    python协程asyncio的个人理解
    EF或原生sql语句使用全文索引
    在拥挤和变化的世界中茁壮成长:C++ 2006–2020
  • 原文地址:https://www.cnblogs.com/fanxp/p/12084733.html
Copyright © 2020-2023  润新知