在Ubuntu上运行Kubernetes涉及多个步骤,包括系统准备、安装Docker、配置Kubernetes组件、初始化集群、安装网络插件以及添加工作节点。以下是详细的步骤指南:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg apt-transport-https ca-certificates software-properties-common
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo hostnamectl set-hostname k8s-master # 主节点
sudo hostnamectl set-hostname k8s-worker1 # 工作节点
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 ctr version
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update && sudo apt install -y kubeadm=1.28.* kubelet=1.28.* kubectl=1.28.*
sudo systemctl enable kubelet
sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=<主节点IP> --control-plane-endpoint=<主节点IP或负载均衡地址>
成功初始化后,会生成一些命令,例如如何与Kubernetes集群互动、如何添加工作节点等。
在工作节点上执行主节点初始化后生成的命令,例如:
sudo kubeadm join <主节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
使用以下命令检查集群状态:
kubectl get nodes
创建一个名为nginx-deployment.yaml
的文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
创建一个名为nginx-service.yaml
的文件,内容如下:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
将Deployment应用到集群:
kubectl apply -f nginx-deployment.yaml
通过以上步骤,你可以在Ubuntu上成功运行Kubernetes集群,并部署一个简单的Nginx应用。