Kubernetes如何在Ubuntu上运行
在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
- 禁用交换分区(Kubernetes要求):
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
- 设置主机名(可选):
sudo hostnamectl set-hostname k8s-master # 主节点
sudo hostnamectl set-hostname k8s-worker1 # 工作节点
- 安装containerd:
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
安装Kubernetes组件
- 添加Kubernetes官方GPG密钥:
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
- 安装指定版本的Kubernetes组件(例如1.28.x):
sudo apt update && sudo apt install -y kubeadm=1.28.* kubelet=1.28.* kubectl=1.28.*
- 设置kubelet自动启动(暂不启动):
sudo systemctl enable kubelet
部署Kubernetes集群
- 初始化主节点:
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 --discovery-token-ca-cert-hash sha256:<hash>
- 验证集群状态:
使用以下命令检查集群状态:
kubectl get nodes
部署应用示例
- 创建Deployment:
创建一个名为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
- 创建Service(可选):
创建一个名为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应用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!