For Production also you can use the Kubectl or Helm or kustomize to apply the YAML
ideally, in production you should be at the end applying the YAML to deploy the application.
You can choose the helm or kustomize to create or generate YAML as a specific application. once your YAML is ready you can apply the YAML using kubectl.
kubectl apply -f file-name.yaml
Or you can helm chart to deploy the relase of application.
helm install <chart-name>
Helm read more : https://helm.sh/docs/topics/charts/
Kustomize is K8s native config management Read more here: https://kustomize.io/
Ultimately you will be creating the YAML like below for app and applying using Kubectl either dev, stag or prod doesn't matter
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Deploying using the kubectl cli without YAML is also fine but not much flexibility there.
While by looking at YAML you can get an idea of what is deployed and configuration.