diff --git a/05-cluster-bootstrap/README.md b/05-cluster-bootstrap/README.md index cba7262..e458315 100644 --- a/05-cluster-bootstrap/README.md +++ b/05-cluster-bootstrap/README.md @@ -1,6 +1,6 @@ # 05-Cluster-Bootstrap -Assumption is that an external load balancer is already configured for the cluster control plane IP address. Initialize the cluster +Assumption is that an external load balancer is already configured for the cluster control plane IP address. Initialize the cluster, but do not join any other nodes to it yet. ```bash @@ -8,7 +8,7 @@ sudo kubeadm init --config cluster-config.yaml --upload-certs ``` -Copy kubectl config +Copy kube admin config to local profile. This is also a good time to copy it to your desktop with SCP or something. ```bash mkdir -p $HOME/.kube @@ -16,5 +16,3 @@ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` - -Before you join other nodes, deploy the CNI in 06! If you don't, there is sometimes an issue where the br0 adapter will use the crio CNI configuration. \ No newline at end of file diff --git a/06-cni-flannel/README.md b/06-cni-flannel/README.md index 7b96817..8afa755 100644 --- a/06-cni-flannel/README.md +++ b/06-cni-flannel/README.md @@ -1,5 +1,9 @@ # 06-CNI-Flannel +[https://github.com/flannel-io/flannel](https://github.com/flannel-io/flannel) + +Flannel provides the pod to pod networking, using [VXLAN](https://en.wikipedia.org/wiki/Virtual_Extensible_LAN). + ```bash kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml diff --git a/07-nfs-subdir-provisioner/README.md b/07-nfs-subdir-provisioner/README.md index b23bbe8..895789d 100644 --- a/07-nfs-subdir-provisioner/README.md +++ b/07-nfs-subdir-provisioner/README.md @@ -1,5 +1,7 @@ # 07-NFS-Subdir-Provisioner +[https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner) + To support persistent volume claims on NFS external storage, a provisioner can be configured and deployed easily with helm. ```bash @@ -12,7 +14,6 @@ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs ``` - A PVC can then be created similar to below example: ```yaml diff --git a/08-ingress-nginx-controller/README.md b/08-ingress-nginx-controller/README.md index 5860bf0..96c1d46 100644 --- a/08-ingress-nginx-controller/README.md +++ b/08-ingress-nginx-controller/README.md @@ -1,5 +1,8 @@ # 08-Ingress-Nginx-Controller +[https://kubernetes.github.io/ingress-nginx/](https://kubernetes.github.io/ingress-nginx/) +[https://github.com/kubernetes/ingress-nginx](https://github.com/kubernetes/ingress-nginx) + ```bash helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace -f values.yaml diff --git a/10-join-nodes/README.md b/10-join-nodes/README.md index ccb0bb7..945e394 100644 --- a/10-join-nodes/README.md +++ b/10-join-nodes/README.md @@ -1,7 +1,20 @@ # 10-Join-Nodes +At this point, other nodes can be joined to the cluster. From a control node, you can get the join command by doing the following. + +```bash +sudo kubeadm token create --print-join-command + +``` + +You can then take the command in the output and use it to join other nodes. + ```bash -kubeadm join 10.69.69.147:6443 --config join-config.yaml +# Example to join a control node, add --control-plane +sudo kubeadm join 10.69.69.50:6443 --token drazx3.qa70i6wfatxujdqo --discovery-token-ca-cert-hash sha256:5dccc0b4113ffc2543e2d453c35bf4db998719c1c73b60e4467f5c20d3f7b9ad --control-plane -``` \ No newline at end of file +# Example to join a worker node +sudo kubeadm join 10.69.69.50:6443 --token drazx3.qa70i6wfatxujdqo --discovery-token-ca-cert-hash sha256:5dccc0b4113ffc2543e2d453c35bf4db998719c1c73b60e4467f5c20d3f7b9ad + +``` diff --git a/30-applications/README.md b/30-applications/README.md new file mode 100644 index 0000000..1273738 --- /dev/null +++ b/30-applications/README.md @@ -0,0 +1,8 @@ +# 30-Applications + +Ready to deploy applications to the cluster at this point + +```yaml +kubectl apply -f mandelmap.yaml + +``` \ No newline at end of file diff --git a/README.md b/README.md index fdcc204..ba00841 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # deadbeef.codes-k8s +![alt text][logo] + +[logo]: https://deadbeef.codes/steven/kubernetes-bootstrapping/raw/branch/main/logo.png "Kubernetes Bootstrapping" + This is documentation and a process I've created for bootstrapping a Kubernetes cluster on bare metal or VMs without using a cloud provider managed service. My use case for this is running my own personal services, and learning more about Kubernetes as I study for the CKA exam. Each section can be followed in numerical order. diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..edafb64 Binary files /dev/null and b/logo.png differ