下面给你一份新手向的 Ubuntu + Kubernetes(K8s)入门路线,从“装好环境”到“跑起来第一个应用”,尽量不绕弯。
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
sudo hostnamectl set-hostname k8s-master
K8s 1.24+ 默认用 containerd
sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd
sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes.gpg] https://apt.kubernetes.io kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
推荐 Flannel(最简单):
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
查看状态:
kubectl get nodes
看到 Ready 就成功了 ✅
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
查看访问端口:
kubectl get svc
浏览器访问:
http://<你的IP>:3xxxx
kubectl get pods
kubectl get nodes
kubectl logs <pod名>
kubectl delete deployment nginx
如果你只是学习 K8s,不想折腾环境:
例如 Minikube:
sudo apt install docker.io
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start
如果你愿意,我可以:
你现在是「纯学习」还是「准备上线用」?