all in serverless,最近一段时间要把这个研究透彻,然后输出一系列文章,干货还在后面,欢迎关注


0、服务器环境

centos7.6

1、上网

访问gcr镜像

2、设置docker代理

(1)创建以下目录:/etc/systemd/system/docker.service.d

(2)在上述目录下创建http-proxy.conf文件,内容如下:

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"

(3)刷新配置,重启docker服务:

sudo systemctl daemon-reload
sudo service docker restart
systemctl show --property=Environment docker //如果配置成功,执行该命令将会看到配置的代理信息

3、系统设置代理

临时性设置,只修改环境变量

export http_proxy=http://127.0.0.1:7890/
export proxy="http://127.0.0.1:7890"
export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy
export no_proxy="localhost, 127.0.0.1, ::1"

4、安装knative serving

  1. 安装所需的自定义资源:
kubectl apply -f https://github.com/knative/serving/releases/download/v0.23.3/serving-crds.yaml
  1. 安装 Knative Serving 的核心组件:
kubectl apply -f https://github.com/knative/serving/releases/download/v0.23.3/serving-core.yaml
  1. 验证安装

监控 Knative 组件,直到所有组件都显示 STATUS 为 Running 或 Completed:

kubectl get pods --namespace knative-serving

5、安装网络层

在这里,我们选择Istio作为Knative的网络层组件。Istio平台的具体安装步骤如下。

  1. 安装正确配置的 Istio
kubectl apply -f https://github.com/knative/net-istio/releases/download/v0.23.2/istio.yaml
  1. 安装 Knative Istio 控制器:
kubectl apply -f https://github.com/knative/net-istio/releases/download/v0.23.2/net-istio.yaml
  1. 获取外部 IP 或 CNAME:
kubectl --namespace istio-system get service istio-ingressgateway

保存它用于配置后面的 DNS。

6、设置DNS

要为 Knative 配置 DNS,请从设置网络中获取外部 IP 或 CNAME,并使用您的 DNS 提供商对其进行配置,如下所示:

如果网络层生成了外部 IP 地址,则为域配置通配符 A 记录:

# 这里 knative.example.com 是你集群的域后缀
*.knative.example.com == A 35.233.41.212

如果网络层生成了 CNAME,则为域配置 CNAME 记录:

# 这里 knative.example.com 是你集群的域后缀
*.knative.example.com == CNAME a317a278525d111e89f272a164fd35fb-1510370581.eu-central-1.elb.amazonaws.com

配置 DNS 提供商后,指示 Knative 使用该域:

# Replace knative.example.com with your domain suffix
kubectl patch configmap/config-domain \
--namespace knative-serving \
--type merge \
--patch '{"data":{"knative.example.com":""}}'

如果您使用 curl 访问示例应用程序或您自己的 Knative 应用程序,并且无法使用“Real DNS”方法,则有一种临时方法。 这对于那些希望在不更改其 DNS 配置的情况下评估 Knative(根据“Real DNS”方法)或由于使用例如本地 minikube 或 IPv6 集群而无法使用“Magic DNS”方法的人非常有用。

  1. 要使用 curl 使用此方法访问您的应用程序:
kubectl get ksvc

输出

NAME            URL                                        LATESTCREATED         LATESTREADY           READY   REASON
helloworld-go http://helloworld-go.default.example.com helloworld-go-vqjlf helloworld-go-vqjlf True
  1. 使用 -H “Host:” 命令行选项指定 Knative 应用程序的主机名。 例如,
curl -H "Host: helloworld-go.default.example.com" http://192.168.39.228:32198

感谢关注,下期讲解如何把自己的函数部署到serverless knative平台.