I am designing an API which will receive requests from customers and will interact with a cloud backend such as AWS on behalf of the customer. This API has to be scalable so a bit of research led me to believe that I can put the API inside containers and let scale it through Kubernetes. I am planning to use Flask for writing this API. I have three questions in this regard:
Flask should be fine, as would be many other approaches, it's up to you how you write your API after all
the best way you could go in my opinion is to have something like bearer token authentication, where you provide some authentication mechanism(s) to token issuing service and when you have a signed token your API (or api gateway / auth proxy) can check if the token is valid (either on it's own or by calling dedicated microservice)
If for any reason you need a session storage, you should implement a separate service that will store that session data. For example you can use Redis as central storage. If you need HA for this service as well, then you'd have to implement your session storage with some clustering support.