美文网首页
2020-05-14 Set Up Network and HT

2020-05-14 Set Up Network and HT

作者: 鸭鸭学语言 | 来源:发表于2020-05-16 18:55 被阅读0次

    An instance template is a resource that you can use to create Virtual Machine (VM) instances and managed instance groups (MIGs).
    A managed instance group using the instance template to create a cluster

    A target pool allows a single access point to all the instances in a group and is necessary for load balancing.

    To create the Nginx web server clusters, create the following:

    A startup script to be used by every virtual machine instance to setup Nginx server upon startup
    An instance template to use the startup script
    A target pool
    A managed instance group using the instance template

    $ gcloud compute instance-templates create nginx-template --metadata-from-file start-script=startup.sh
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/instanceTemplates/nginx-template].
    NAME            MACHINE_TYPE   PREEMPTIBLE  CREATION_TIMESTAMP
    nginx-template  n1-standard-1               2020-05-15T12:36:49.558-07:00
    $ 
    $ gcloud compute target-pools create nginx-pool
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/regions/us-central1/targetPools/nginx-pool].
    NAME        REGION       SESSION_AFFINITY  BACKUP  HEALTH_CHECKS
    nginx-pool  us-central1  NONE
    $ 
    $ gcloud compute instance-groups managed create nginx-group --base-instance-name nginx --size 2 --template nginx-template --target-pool nginx-pool
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/zones/us-central1-a/instanceGroupManagers/nginx-group].
    NAME         LOCATION       SCOPE  BASE_INSTANCE_NAME  SIZE  TARGET_SIZE  INSTANCE_TEMPLATE  AUTOSCALED
    nginx-group  us-central1-a  zone   nginx               0     2            nginx-template     no
    $ 
    $ gcloud compute instances list
    NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
    nginx-2jk3  us-central1-a  n1-standard-1               10.128.0.2   35.224.92.57  RUNNING
    nginnginx-group  us-central1-a  zone   nginx               0     2            nginx-template     no
    $ 
    $ gcloud compute firewall-rules create www-firewall --allow tcp:80
    Creating firewall...⠹Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/firewalls/www-firewall].
    Creating firewall...done.
    NAME          NETWORK  DIRECTION  PRIORITY  ALLOW   DENY  DISABLED
    www-firewall  default  INGRESS    1000      tcp:80        False
    $ 
    

    instance group 是target pool的经纪人。target pool是个组合。

    Network load balancing allows you to balance the load of your systems based on incoming IP protocol data, such as address, port, and protocol type.You also get some options that are not available, with HTTP(S) load balancing. For example, you can load balance additional TCP/UDP-based protocols such as SMTP traffic. And if your application is interested in TCP-connection-related characteristics, network load balancing allows your app to inspect the packets, where HTTP(S) load balancing does not.

    Create an L3 network load balancer (forwarding-rules) targeting your instance group:

    $ gcloud compute forwarding-rules create nginx-lb --region us-central1 --ports 80 --target-pool nginx-pool
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/regions/us-central1/forwardingRules/nginx-lb].
    $ 
    $ gcloud compute forwarding-rules list
    NAME      REGION       IP_ADDRESS      IP_PROTOCOL  TARGET
    nginx-lb  us-central1  104.198.185.20  TCP          us-central1/targetPools/nginx-pool
    $ 
    

    HTTP(S) load balancing provides global load balancing for HTTP(S) requests destined for your instances. You can configure URL rules that route some URLs to one set of instances and route other URLs to other instances. Requests are always routed to the instance group that is closest to the user, provided that group has enough capacity and is appropriate for the request. If the closest group does not have enough capacity, the request is sent to the closest group that does have capacity.

    Create a HTTP(s) Load Balancer

    create http-health-checks.Health checks verify that the instance is responding to HTTP or HTTPS traffic
    map a port name to the relevant port for the instance group
    create a backend service
    add instance group to the backend service
    create a default URL map that directs all incoming requests to all your instances
    create a target HTTP proxy to route requests to your URL map
    create a global forwarding rule to handle and route incoming requests

    instance group <--> backend service <--> url map <--> target-http-proxies <--> forwarding-rules

    $ gcloud compute http-health-checks create http-basic-check
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/httpHealthChecks/http-basic-check].
    NAME              HOST  PORT  REQUEST_PATH
    http-basic-check        80    /
    $ 
    $ gcloud compute instance-groups managed set-named-ports nginx-group --named-ports http:80
    Updated [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/zones/us-central1-a/instanceGroups/nginx-group].
    $ 
    $ gcloud compute backend-services create nginx-backend --protocol HTTP --http-health-checks http-basic-check --global
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/backendServices/nginx-backend].
    NAME           BACKENDS  PROTOCOL
    nginx-backend            HTTP
    $ 
    $ gcloud compute backend-services add-backend nginx-backend --instance-group nginx-group --instance-group-zone us-central1-a --global
    Updated [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/backendServices/nginx-backend].
    $ 
    $ gcloud compute url-maps create web-map  --default-service nginx-backend
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/urlMaps/web-map].
    NAME     DEFAULT_SERVICE
    web-map  backendServices/nginx-backend
    $ 
    $ gcloud compute target-http-proxies create http-lb-proxy --url-map web-map
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/targetHttpProxies/http-lb-proxy].
    $
    $ gcloud compute forwarding-rules create http-content-rule --global --target-http-proxy http-lb-proxy --ports 80
    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-f1f9260bce1a/global/forwardingRules/http-content-rule].
    $ 
    $ gcloud compute forwarding-rules list
    NAME               REGION       IP_ADDRESS      IP_PROTOCOL  TARGET
    http-content-rule               34.107.247.121  TCP          http-lb-proxy
    nginx-lb           us-central1  104.198.185.20  TCP          us-central1/targetPools/nginx-pool
    $ 
    
    

    相关文章

      网友评论

          本文标题:2020-05-14 Set Up Network and HT

          本文链接:https://www.haomeiwen.com/subject/gcqqohtx.html