zoukankan      html  css  js  c++  java
  • fn project k8s 集成

    具体部署还是比较简单的,以下为官方参考,只是有一个service type 为 loadBlancer 实际使用需要修改为NodePort 

    Prerequisite 1: working Kubernetes cluster (v1.7+), and a locally configured kubectl.

     Quickstart

       Steps

    1. Deploy Fn to the Kubernetes cluster:
    $ cd docs/operating/
    $ kubectl create -f fn-service.yaml
    1. Once the Pods have started, check the service for the load balanacer IP:
    $ kubectl get svc --watch
    NAME                                CLUSTER-IP      EXTERNAL-IP     PORT(S)                                                       AGE
    fn-mysql-master                     10.96.57.185    <none>          3306/TCP                                                      10m
    fn-redis-master                     10.96.127.51    <none>          6379/TCP                                                      10m
    fn-service                          10.96.245.95    <pending>       8080:30768/TCP,80:31921/TCP                                   10m
    kubernetes                          10.96.0.1       <none>          443/TCP                                                       15d

    Note that fn-service is initially pending on allocating an external IP. The kubectl get svc --watch command will update this once an IP has been assigned.

    1. Test the cluster:

    If you are using a Kubernetes setup that can expose a public load balancer, run:

    $ export FUNCTIONS=$(kubectl get -o json svc fn-service | jq -r '.status.loadBalancer.ingress[0].ip'):8080

    If you are using a Kubernetes setup like minikube, run

    $ echo $(minikube ip):$(kubectl get svc fn-service -o json | jq -r '.spec.ports[0].nodePort')
    192.168.99.100:30966
    $ export API_URL=http://192.168.99.100:30966

    Now, test by creating a function via curl:

    $ curl -H "Content-Type: application/json" -X POST -d '{ "app": { "name":"myapp" } }' http://$API_URL/v1/apps
    {"message":"App successfully created","app":{"name":"myapp","config":null}}
    
    $ curl -H "Content-Type: application/json" -X POST -d '{ "route": { "type": "sync", "path":"/hello-sync", "image":"fnproject/hello" } }' http://$API_URL/v1/apps/myapp/routes
    {"message":"Route successfully created","route":{"app_name":"myapp","path":"/hello-sync","image":"fnproject/hello","memory":128,"headers":{},"type":"sync","format":"default","timeout":30,"idle_timeout":30,"config":{}}}
    
    $ curl -H "Content-Type: application/json" -X POST -d '{ "name":"Johnny" }' http://$API_URL/r/myapp/hello-sync
    Hello Johnny!

    You can also use the Fn CLI:

    $ export API_URL=http://192.168.99.100:30966
    $ fn apps list
    myapp
    $ fn routes list myapp
    path            image           endpoint
    /hello-sync     fnproject/hello 192.168.99.100:30966/r/myapp/hello-sync
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    SpringBoot进阶教程(六十七)RateLimiter限流
    Nginx限流配置
    ab test压力测试
    Nginx负载均衡配置
    arduino串口通信
    flask文件路径设置问题
    WIN10和ubunu共享文件夹相互访问
    树莓派录音和播放声音
    深度学习论文翻译解析(十六):Squeeze-and-Excitation Networks
    人工智能必备数学基础:高等数学基础(2)
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/7628945.html
Copyright © 2011-2022 走看看