The recommended approach is to upgrade one minor version at a time.
$ kubeadm upgrade plan
$ apt-get upgrade -y kubeadm=1.12.0-00
$ kubeadm upgrade apply v1.12.0
$ kubectl get nodes
$ apt-get upgrade kubelet=1.12.0-00
$ systemctl restart kubelet
$ kubectl get nodes
$ kubectl drain node-1
$ apt-get upgrade -y kubeadm=1.12.0-00
$ apt-get upgrade -y kubelet=1.12.0-00
$ kubeadm upgrade node config --kubelet-version v1.12.0
$ systemctl restart kubelet
$ kubectl uncordon node-1
Upgrade all worker nodes in the same way