ubuntu搭建k8s环境详细教程

在Ubuntu上搭建Kubernetes(K8s)环境可以通过多种方式实现,下面是一个详细的教程,使用kubeadm工具来搭建Kubernetes集群。这个教程将涵盖从准备工作到安装和配置Kubernetes的所有步骤。

环境准备

  1. 操作系统:确保你使用的是Ubuntu 20.04或更高版本。

  2. 硬件要求

    • 至少2GB RAM(推荐4GB或更多)。
    • 至少2个CPU核心。
    • 确保有足够的磁盘空间(至少20GB)。
  3. 网络要求

    • 确保所有节点之间可以互相通信。
    • 关闭防火墙或配置防火墙规则以允许Kubernetes组件之间的通信。

步骤 1:准备节点

1.1 更新系统
bash 复制代码
sudo apt update
sudo apt upgrade -y
1.2 设置主机名

为每个节点设置主机名(例如,master和worker节点):

bash 复制代码
sudo hostnamectl set-hostname master-node
1.3 编辑 /etc/hosts

在所有节点上编辑 /etc/hosts 文件,添加每个节点的IP和主机名:

bash 复制代码
sudo nano /etc/hosts

添加以下内容(根据你的实际IP地址和主机名进行修改):

192.168.1.100 master-node
192.168.1.101 worker-node1
192.168.1.102 worker-node2

步骤 2:安装Docker

Kubernetes需要一个容器运行时,Docker是最常用的选择。

2.1 安装Docker
bash 复制代码
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
2.2 启动并设置Docker开机自启
bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker
2.3 配置Docker使用systemd作为cgroup管理器

编辑Docker配置文件:

bash 复制代码
sudo mkdir /etc/docker
sudo nano /etc/docker/daemon.json

添加以下内容:

json 复制代码
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

重启Docker服务:

bash 复制代码
sudo systemctl restart docker

步骤 3:安装Kubernetes组件

3.1 添加Kubernetes的APT源
bash 复制代码
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
3.2 安装Kubernetes组件
bash 复制代码
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

步骤 4:初始化Kubernetes集群

在主节点上执行以下命令以初始化Kubernetes集群:

bash 复制代码
sudo kubeadm init --pod-network-cidr=192.168.0.0/16

初始化完成后,您会看到一条类似于以下的输出,记录下kubeadm join命令:

kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

步骤 5:配置kubectl

在主节点上配置kubectl以便于管理Kubernetes集群:

bash 复制代码
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

步骤 6:安装Pod网络插件

Kubernetes需要一个网络插件来管理Pod之间的通信。这里我们使用Calico作为网络插件:

bash 复制代码
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

步骤 7:加入工作节点

在每个工作节点上,使用在初始化时记录的kubeadm join命令加入集群。例如:

bash 复制代码
sudo kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

步骤 8:验证集群状态

在主节点上,运行以下命令以验证集群状态:

bash 复制代码
kubectl get nodes

你应该能看到主节点和所有工作节点的状态为Ready

结语

至此,你已经成功在Ubuntu上搭建了Kubernetes集群。通过这个集群,你可以部署和管理容器化应用程序。接下来,你可以根据需要安装其他工具和应用,进一步探索Kubernetes的强大功能。希望这个教程对你有所帮助!

相关推荐
广而不精zhu小白20 分钟前
CentOS Stream 9 挂载Windows共享FTP文件夹
linux·windows·centos
一休哥助手26 分钟前
全面解析 Linux 系统监控与性能优化
linux·运维·性能优化
二进制杯莫停28 分钟前
掌控网络流量的利器:tcconfig
linux
watl044 分钟前
【Android】unzip aar删除冲突classes再zip
android·linux·运维
赵大仁1 小时前
在 CentOS 7 上安装 Node.js 20 并升级 GCC、make 和 glibc
linux·运维·服务器·ide·ubuntu·centos·计算机基础
vvw&1 小时前
Docker Build 命令详解:在 Ubuntu 上构建 Docker 镜像教程
linux·运维·服务器·ubuntu·docker·容器·开源
冷曦_sole2 小时前
linux-21 目录管理(一)mkdir命令,创建空目录
linux·运维·服务器
最后一个bug2 小时前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
dessler2 小时前
Docker-Dockerfile讲解(二)
linux·运维·docker
卫生纸不够用2 小时前
子Shell及Shell嵌套模式
linux·bash