我正在参加「掘金·启航计划」
本篇文章首先回顾之前讲到的虚拟机,K8s的创建方式,同时介绍HTTP负载均衡器创建方法,整个过程基于Cloud Shell 命令行工具。
创建计算实例
- 将实例命名为 nucleus-jumphost-923 。
- 使用“f1-micro”机器类型。
- 使用默认映像类型 (Debian Linux)。
- 配置可用区域为us-east1-b
gcloud config set compute/zone us-east1-b
gcloud compute instances create nucleus-jumphost-853 --machine-type f1-micro --zone us-east1-b
创建K8s服务集群
- 创建集群(位于 us-east1-b 可用区)以托管该服务。
- 使用 Docker 容器 hello-app (gcr.io/google-samples/hello-app:2.0) 作为临时占位;该团队稍后会将该容器替换为自己创建的容器。
- 在端口 8081 上公开该应用。
gcloud config set compute/zone us-east1-b
gcloud container clusters create --machine-type=e2-medium lab-cluster
gcloud container clusters get-credentials lab-cluster
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:2.0
kubectl expose deployment hello-server --type=LoadBalancer --port 8081
设置HTTP负载均衡器
上文讲到了传统的网络负载均衡器,接下来您将基于包含 2 个 nginx 网络服务器的代管式实例组创建 HTTP 负载均衡器。并且使用以下代码配置网络服务器;
cat << EOF > startup.sh
#! /bin/bash
apt-get update
apt-get install -y nginx
service nginx start
sed -i -- 's/nginx/Google Cloud Platform - '"\$HOSTNAME"'/' /var/www/html/index.nginx-debian.html
EOF
您需要执行的操作:
- 创建一个实例模板。
gcloud compute instance-templates create lb-backend-template \
--region= \
--network=default \
--subnet=default \
--tags=allow-health-check \
--machine-type=e2-medium \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install -y nginx
service nginx start
sed -i -- "s/nginx/Google Cloud Platform - " \$HOSTNAME"'/' /var/www/html/index.nginx-debian.html'
- 创建目标池。
gcloud compute target-pools create www-pool \
--region --http-health-check basic-check
- 创建代管式实例组。
gcloud compute instance-groups managed create lb-backend-group \
--template=lb-backend-template --size=2 --zone=
- 创建一条名为 accept-tcp-rule-315 的防火墙规则,以允许定向到端口 80 的 TCP 流量。
gcloud compute firewall-rules create accept-tcp-rule-315 \
--network=default \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-health-check \
--rules=tcp:80
- 创建一项健康检查。
gcloud compute health-checks create http http-basic-check \
--port 80
- 创建后端服务,然后使用指定端口 (http:80) 挂接代管式实例组。
gcloud compute backend-services create web-backend-service \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
gcloud compute backend-services add-backend web-backend-service \
--instance-group=lb-backend-group \
--instance-group-zone= \
--global
- 创建网址映射并定位到 HTTP 代理,以将请求路由到您的网址映射。
gcloud compute url-maps create web-map-http \
--default-service web-backend-service
gcloud compute target-http-proxies create http-lb-proxy \
--url-map web-map-http
- 创建转发规则。
gcloud compute forwarding-rules create http-content-rule \
--address=lb-ipv4-1\
--global \
--target-http-proxy=http-lb-proxy \
--ports=80