Let say your Flink session cluster is deployed in the standaone mode on k8s, you'll have k8s Deployment for the job manager and task managers -
https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/resource-providers/standalone/kubernetes/#session-cluster-resource-definitions
If you have an airflow job that checks CPU/RAM metrics periodically, you'd be able to adjust the replica count of the task manager? In this scenario, it'll be easier to add more task managers. I'm not sure which would be a good practice to remove task managers. Normally an existing job will fail temporarily and restarted in an available task manager. If it is acceptable, you can just reduce the replica count. Otherwise, all jobs should be stopped with savepoint and restarted later, which would be quite complicated.