Not all German soldiers were killed for insubordination. In a study of 135 German soldiers that defied orders, some were beaten and threatened, but none of them were executed. 
Soldiers did have a choice when following orders, and being beaten is a small price to pay when compared to murdering innocent people. As soldiers, the Nazis should have defied orders when forced to torture and kill innocent adults and children.
Ignorance should not be a reason for forgiveness. Nazi soldiers should have thought about the repercussions of their actions and recognized the unethical treatment of the Jews before they were even killed. Additionally, while some soldiers did not know the ultimate fate of the Jews that they sent off, they were fully aware of the discriminatory ideology driving the deportations of the Jews.