This page contains my open notes. Be aware that some content may be incomplete.
This is the multi-page printable view of this section. Click here to print.
Notes
- 1: Kubernetes
- 2: Goals
- 3: Ideas
- 3.1: Learning Ideas
- 3.2: Project Ideas
- 4: Projects
- 4.1: 1 Week Sprint
- 4.2: Week 1
1 - Kubernetes
1.1 - Development Evironment Clusters
1.1.1 - Kind Cluster Without CNI
Kind Cluster Without CNI
Kind installs a CNI by default.
To create a kind cluster without CNI installed, simply set networking.disableDefaultCNI to true in the cluster config manifest.
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
# the default CNI will not be installed
disableDefaultCNI: true
So run the following command.
kind create cluster --config <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
# the default CNI will not be installed
disableDefaultCNI: true
EOF
And Check that Pods that are not part of the control plane is in Pending status.
$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-5d78c9869d-2gljt 0/1 Pending 0 16s
kube-system coredns-5d78c9869d-vnftf 0/1 Pending 0 16s
kube-system etcd-kind-control-plane 1/1 Running 0 31s
kube-system kube-apiserver-kind-control-plane 1/1 Running 0 31s
kube-system kube-controller-manager-kind-control-plane 1/1 Running 0 31s
kube-system kube-proxy-qm5pn 1/1 Running 0 16s
kube-system kube-scheduler-kind-control-plane 1/1 Running 0 31s
local-path-storage local-path-provisioner-6bc4bddd6b-s68jl 0/1 Pending 0 16s
You can also see that the nodes are not ready.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kind-without-cni-control-plane NotReady control-plane 28s v1.27.3
References
2 - Goals
Goals
- Master eBPF and Cilium
- Master AIOps
Always explore new technologies such as:
- WASI
3 - Ideas
3.1 - Learning Ideas
1. Cilium code read
Read and understand the internals of Cilium
2. Automated RCA
Develop Automated RCA method
3.2 - Project Ideas
1. CNI plugin with eBPF
- CNI, eBPF, Rust or Go
2. Distributed Tracing without code change
- eBPF, Rust or Go
3. Distributed dnsmasq server
- Raft, Rust or Go
4. eBPF Load Balancer
- eBPF, Rust or Go
4 - Projects
4.1 - 1 Week Sprint
Week 1 (4/7 ~ 4/13). DHCP Server in Rust
Goal: implement a fully functional DHCP server in Rust
Week 2 (4/14 ~ 4/20). DNS Server in Rust
Goal: extend prior week’s DHCP server to also function as DNS server
Week 3 (4/21 ~ 4/27). Distributed DNS & DHCP server in Rust
Goal: extend prior week’s DNS & DHCP server to be highly availble by using distributed concensus
4.2 - Week 1
Week 1 (4/7 ~ 4/13). DHCP Server in Rust
Goal: implement a fully functional DHCP server in Rust
Day 1: Set up
Goals:
- Set up Rust project
- recall Rust basics