{"id":13459913,"url":"https://github.com/bentoml/Yatai","last_synced_at":"2025-03-24T18:31:31.481Z","repository":{"id":37855501,"uuid":"390935075","full_name":"bentoml/Yatai","owner":"bentoml","description":"Model Deployment at Scale on Kubernetes 🦄️","archived":false,"fork":false,"pushed_at":"2024-05-08T12:51:22.000Z","size":12199,"stargazers_count":797,"open_issues_count":23,"forks_count":71,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-19T18:15:32.174Z","etag":null,"topics":["bentoml","k8s","kubernetes","machine-learning","mlops","model-deployment","model-serving"],"latest_commit_sha":null,"homepage":"https://bentoml.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bentoml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-30T04:54:50.000Z","updated_at":"2025-03-18T02:03:07.000Z","dependencies_parsed_at":"2023-02-12T11:30:19.266Z","dependency_job_id":"2ce11b3c-fddd-4637-9092-1175f3f01bb4","html_url":"https://github.com/bentoml/Yatai","commit_stats":null,"previous_names":[],"tags_count":118,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bentoml%2FYatai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bentoml%2FYatai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bentoml%2FYatai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bentoml%2FYatai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bentoml","download_url":"https://codeload.github.com/bentoml/Yatai/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245328206,"owners_count":20597386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bentoml","k8s","kubernetes","machine-learning","mlops","model-deployment","model-serving"],"created_at":"2024-07-31T10:00:32.333Z","updated_at":"2025-03-24T18:31:30.058Z","avatar_url":"https://github.com/bentoml.png","language":"TypeScript","funding_links":[],"categories":["*Ops for AI","TypeScript","语言资源库"],"sub_categories":["AI Orchestration \u0026 Deployment","go"],"readme":"# 🦄️ Yatai: Model Deployment at Scale on Kubernetes\n\n[![actions_status](https://github.com/bentoml/yatai/workflows/Release/badge.svg)](https://github.com/bentoml/yatai/actions)\n[![join_slack](https://badgen.net/badge/Join/Community%20Slack/cyan?icon=slack\u0026style=flat-square)](https://join.slack.bentoml.org)\n\n⚠️ Yatai for [BentoML 1.2](https://github.com/bentoml/BentoML/releases/tag/v1.2.0) is currently under construction. See [Yatai 2.0 Proposal](https://github.com/bentoml/Yatai/issues/504) for more details. \n\n---\n\nYatai (屋台, food cart) is the Kubernetes deployment operator for [BentoML](https://github.com/bentoml/bentoml).\n\nIt let DevOps teams to seamlessly integrate BentoML into their GitOps workflow, for deploying and scaling Machine Learning services on any Kubernetes cluster.\n\n👉 [Join our Slack community today!](https://l.bentoml.com/join-slack)\n\n---\n\n## Why Yatai?\n\nYatai empowers developers to deploy [BentoML](https://github.com/bentoml) on Kubernetes, optimized for CI/CD and DevOps workflow.\n\nYatai is Cloud native and DevOps friendly. Via its Kubernetes-native workflow, specifically the [BentoDeployment CRD](https://docs.yatai.io/en/latest/concepts/bentodeployment_crd.html) (Custom Resource Definition), DevOps teams can easily fit BentoML powered services into their existing workflow.\n\n\n## Getting Started\n\n- 📖 [Documentation](https://docs.yatai.io/) - Overview of the Yatai docs and related resources\n- ⚙️ [Installation](https://docs.yatai.io/en/latest/installation/index.html) - Hands-on instruction on how to install Yatai for production use\n- 👉 [Join Community Slack](https://l.linklyhq.com/l/ktPW) - Get help from our community and maintainers\n\n\n## Quick Tour\n\nLet's try out Yatai locally in a minikube cluster!\n\n### ⚙️ Prerequisites:\n  * Install latest minikube: https://minikube.sigs.k8s.io/docs/start/\n  * Install latest Helm: https://helm.sh/docs/intro/install/\n  * Start a minikube Kubernetes cluster: `minikube start --cpus 4 --memory 4096`, if you are using macOS, you should use [hyperkit](https://minikube.sigs.k8s.io/docs/drivers/hyperkit/) driver to prevent the macOS docker desktop [network limitation](https://docs.docker.com/desktop/networking/#i-cannot-ping-my-containers)\n  * Check that minikube cluster status is \"running\": `minikube status`\n  * Make sure your `kubectl` is configured with `minikube` context: `kubectl config current-context`\n  * Enable ingress controller: `minikube addons enable ingress`\n\n### 🚧 Install Yatai\n\nInstall Yatai with the following script:\n\n```bash\nbash \u003c(curl -s \"https://raw.githubusercontent.com/bentoml/yatai/main/scripts/quick-install-yatai.sh\")\n```\n\nThis script will install Yatai along with its dependencies (PostgreSQL and MinIO) on\nyour minikube cluster. \n\nNote that this installation script is made for development and testing use only.\nFor production deployment, check out the [Installation Guide](https://docs.yatai.io/en/latest/installation/index.html).\n\nTo access Yatai web UI, run the following command and keep the terminal open:\n\n```bash\nkubectl --namespace yatai-system port-forward svc/yatai 8080:80\n```\n\nIn a separate terminal, run:\n\n```bash\nYATAI_INITIALIZATION_TOKEN=$(kubectl get secret yatai-env --namespace yatai-system -o jsonpath=\"{.data.YATAI_INITIALIZATION_TOKEN}\" | base64 --decode)\necho \"Open in browser: http://127.0.0.1:8080/setup?token=$YATAI_INITIALIZATION_TOKEN\"\n``` \n\nOpen the URL printed above from your browser to finish admin account setup.\n\n\n### 🍱 Push Bento to Yatai\n\nFirst, get an API token and login to the BentoML CLI:\n\n* Keep the `kubectl port-forward` command in the step above running\n* Go to Yatai's API tokens page: http://127.0.0.1:8080/api_tokens\n* Create a new API token from the UI, making sure to assign \"API\" access under \"Scopes\"\n* Copy the login command upon token creation and run as a shell command, e.g.:\n\n    ```bash\n    bentoml yatai login --api-token {YOUR_TOKEN} --endpoint http://127.0.0.1:8080\n    ```\n\nIf you don't already have a Bento built, run the following commands from the [BentoML Quickstart Project](https://github.com/bentoml/BentoML/tree/main/examples/quickstart) to build a sample Bento:\n\n```bash\ngit clone https://github.com/bentoml/bentoml.git \u0026\u0026 cd ./examples/quickstart\npip install -r ./requirements.txt\npython train.py\nbentoml build\n```\n\nPush your newly built Bento to Yatai:\n\n```bash\nbentoml push iris_classifier:latest\n```\n\n\n### 🔧 Install yatai-image-builder component\n\nYatai's image builder feature comes as a separate component, you can install it via the following\nscript:\n\n```bash\nbash \u003c(curl -s \"https://raw.githubusercontent.com/bentoml/yatai-image-builder/main/scripts/quick-install-yatai-image-builder.sh\")\n```\n\nThis will install the `BentoRequest` CRD([Custom Resource Definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)) and `Bento` CRD\nin your cluster. Similarly, this script is made for development and testing purposes only.\n\n### 🔧 Install yatai-deployment component\n\nYatai's Deployment feature comes as a separate component, you can install it via the following\nscript:\n\n```bash\nbash \u003c(curl -s \"https://raw.githubusercontent.com/bentoml/yatai-deployment/main/scripts/quick-install-yatai-deployment.sh\")\n```\n\nThis will install the `BentoDeployment` CRD([Custom Resource Definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/))\nin your cluster and enable the deployment UI on Yatai. Similarly, this script is made for development and testing purposes only.\n\n### 🚢 Deploy Bento!\n\nOnce the `yatai-deployment` component was installed, Bentos pushed to Yatai can be deployed to your \nKubernetes cluster and exposed via a Service endpoint. \n\nA Bento Deployment can be created via applying a BentoDeployment resource:\n\nDefine your Bento deployment in a `my_deployment.yaml` file:\n\n```yaml\napiVersion: resources.yatai.ai/v1alpha1\nkind: BentoRequest\nmetadata:\n    name: iris-classifier\n    namespace: yatai\nspec:\n    bentoTag: iris_classifier:3oevmqfvnkvwvuqj  # check the tag by `bentoml list iris_classifier`\n---\napiVersion: serving.yatai.ai/v2alpha1\nkind: BentoDeployment\nmetadata:\n    name: my-bento-deployment\n    namespace: yatai\nspec:\n    bento: iris-classifier\n    ingress:\n        enabled: true\n    resources:\n        limits:\n            cpu: \"500m\"\n            memory: \"512Mi\"\n        requests:\n            cpu: \"250m\"\n            memory: \"128Mi\"\n    autoscaling:\n        maxReplicas: 10\n        minReplicas: 2\n    runners:\n        - name: iris_clf\n          resources:\n              limits:\n                  cpu: \"1000m\"\n                  memory: \"1Gi\"\n              requests:\n                  cpu: \"500m\"\n                  memory: \"512Mi\"\n          autoscaling:\n              maxReplicas: 4\n              minReplicas: 1\n```\n\nApply the deployment to your minikube cluster:\n```bash\nkubectl apply -f my_deployment.yaml\n```\n\nNow you can check the deployment status via `kubectl get BentoDeployment -n my-bento-deployment`\n\n\n\n## Community\n\n-   To report a bug or suggest a feature request, use [GitHub Issues](https://github.com/bentoml/yatai/issues/new/choose).\n-   For other discussions, use [GitHub Discussions](https://github.com/bentoml/BentoML/discussions) under the [BentoML repo](https://github.com/bentoml/BentoML/)\n-   To receive release announcements and get support, join us on [Slack](https://join.slack.bentoml.org).\n\n## Contributing\n\nThere are many ways to contribute to the project:\n\n-   If you have any feedback on the project, share it with the community in [GitHub Discussions](https://github.com/bentoml/BentoML/discussions) under the [BentoML repo](https://github.com/bentoml/BentoML/).\n-   Report issues you're facing and \"Thumbs up\" on issues and feature requests that are relevant to you.\n-   Investigate bugs and review other developers' pull requests.\n-   Contributing code or documentation to the project by submitting a GitHub pull request. See the [development guide](https://github.com/bentoml/yatai/blob/main/DEVELOPMENT.md).\n\n\n\n\n## Licence\n\n[Elastic License 2.0 (ELv2)](https://github.com/bentoml/yatai/blob/main/LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentoml%2FYatai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbentoml%2FYatai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentoml%2FYatai/lists"}