You need to label your deployment somehow, for example we set label app: myapp below:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx
name: nginx
After that you can get deployment’s pod name very easy:
POD=$(kubectl get pod -l app=my-app -o jsonpath="{.items[0].metadata.name}")
and execute some command there, for example:
kubectl exec -ti $POD -- uname -a