Awesome
ACK service controller for Amazon SageMaker
This repository contains source code for the AWS Controllers for Kubernetes (ACK) service controller for Amazon SageMaker.
Please log issues and feedback on the main AWS Controllers for Kubernetes Github project.
Getting Started
1.0 ACK SageMaker Controller
For a step-by-step tutorial head over to Machine Learning with the ACK SageMaker Controller
2.0 ACK Application Auto Scaling Controller
For a step-by-step tutorial on how to use Application Auto Scaling Controller with SageMaker head over to Scale SageMaker Workloads with Application Auto Scaling
3.0 Samples
3.1 SageMaker samples
Head over to the samples directory and follow the README to create resources.
3.2 Application-autoscaling samples
Head over to the samples directory in application-autoscaling controller repository and follow the README to create resources.
4.0 Cross Region Resource Management
Head over to the Manage Resources In Multiple Regions
5.0 Cross Account Resource Management
Head over to the Manage Resources In Multiple AWS Accounts
6.0 Adopt Resources
ACK controllers provide the ability to “adopt” resources that were not originally created by an ACK service controller. For more information, see Adopting Existing AWS Resources in the ACK documentation.
The following steps demonstrate how to adopt a SageMaker Endpoint.
Save the following sample to a file called adopt-endpoint-sample.yaml
.
apiVersion: services.k8s.aws/v1alpha1
kind: AdoptedResource
metadata:
name: adopt-endpoint-sample
spec:
aws:
# resource to adopt, not created by ACK
nameOrID: xgboost-endpoint
kubernetes:
group: sagemaker.services.k8s.aws
kind: Endpoint
metadata:
# target K8s CR name
name: xgboost-endpoint
Submit the CR:
kubectl apply -f adopt-endpoint-sample.yaml
Check that the ACK.Adopted
condition under status.conditions
is True
:
kubectl describe adoptedresource adopt-endpoint-sample
Your output should look similar to the following:
---
kind: AdoptedResource
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"services.k8s.aws/v1alpha1","kind":"AdoptedResource","metadata":{"annotations":{},"name":"xgboost-endpoint","namespace":"default"},"spec":{"aws":{"nameOrID":"xgboost-endpoint"},"kubernetes":{"group":"sagemaker.services.k8s.aws","kind":"Endpoint","metadata":{"name":"xgboost-endpoint"}}}}'
creationTimestamp: '2021-04-27T02:49:14Z'
finalizers:
- finalizers.services.k8s.aws/AdoptedResource
generation: 1
name: adopt-endpoint-sample
namespace: default
resourceVersion: '12669876'
selfLink: "/apis/services.k8s.aws/v1alpha1/namespaces/default/adoptedresources/adopt-endpoint-sample"
uid: 35f8fa92-29dd-4040-9d0d-0b07bbd7ca0b
spec:
aws:
nameOrID: xgboost-endpoint
kubernetes:
group: sagemaker.services.k8s.aws
kind: Endpoint
metadata:
name: xgboost-endpoint
status:
conditions:
- status: 'True'
type: ACK.Adopted
Check that the resource exists in your cluster:
kubectl describe endpoints.sagemaker xgboost-endpoint
7.0 Migrate resources from the old SageMaker Operators for Kubernetes
For information about migrating resources from the old SageMaker Operators for Kubernetes to the ACK SageMaker controller, see Migrate resources to the new SageMaker Operators for Kubernetes in the Amazon SageMaker Developer Guide.
Supported SageMaker Resources
For a list of supported resources, refer to the SageMaker API Reference.
Find the helm charts and controller images on Amazon ECR Public Gallery.
-
Helm Chart: https://gallery.ecr.aws/aws-controllers-k8s/sagemaker-chart
-
Controller Image: https://gallery.ecr.aws/aws-controllers-k8s/sagemaker-controller
Contributing
We welcome community contributions and pull requests.
See our contribution guide for more information on how to report issues, set up a development environment, and submit code.
We adhere to the Amazon Open Source Code of Conduct.
You can also learn more about our Governance structure.
License
This project is licensed under the Apache-2.0 License.