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的强大功能。希望这个教程对你有所帮助!

相关推荐
wb1891 小时前
Linux远程连接服务
linux·运维·服务器·笔记
Jerry&Louis2 小时前
【Ubuntu】Waydroid-Linux安卓模拟器安装
linux·ubuntu
yangpan0112 小时前
ubuntu 24.04安装ros1 noetic
linux·运维·ubuntu
星卯教育tony2 小时前
ubuntu 20.04 更改国内镜像源-阿里源 确保可用
linux·运维·ubuntu
卡戎-caryon2 小时前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程
weixin_434255612 小时前
命令行快速上传文件到SFTP服务器(附参考示例)
linux·运维·服务器
项目題供诗3 小时前
黑马k8s(九)
云原生·容器·kubernetes
麟城Lincoln3 小时前
【Linux笔记】nfs网络文件系统与autofs(nfsdata、autofs、autofs.conf、auto.master)
linux·网络·笔记·nfs·autofs
***似水流年***3 小时前
Linux任务管理与守护进程
linux·运维·服务器
python算法(魔法师版)3 小时前
.NET NativeAOT 指南
java·大数据·linux·jvm·.net