If you want the master to be removed from scheduling a pod, and if you are using Kubernetes 1.7 or above you can use following command.
kubectl taint node yourMasterNode node-role.kubernetes.io/master:NoSchedule-
You can't expose a node it's a VM or bare-metal machine which already has a ip-address and exposed. what you want to do is to use a service to expose a pod to the outside the cluster. You can use Kubernets Services for that. For this testing scenario you can use a NodePort to expose your pod to outside. If you use NodePort, then you can use {your-any-node-ip}:{nodePort}
to access it from outside the cluster. You may need to have a static public ip if you want to access it from internet.
But if you are concern about the availability of the pods you can use multi-node cluster and then use replicas of the pods so they can be scheduled on multiple nodes. Then whenever the a pod in the other nodes can continue servicing while a new pod is scheduled somewhere else. That's how you can have 100% availability in Kubernetes.
As you concern about the master being down. If the master is down apps will continue to serve and nodes will be rather ad-hoc nodes than a cluster. Unless a node restart or app fails it will serve okay. But the cluster will not be able to respond to node failures, create new resources, move pods to new nodes, etc. Until the master is back online. So if there a high chance of master being failed you can simply use multiple masters in your cluster.