ubuntu 24.04 安装 k8s 1.28

以下是在 Ubuntu 上安装 Kubernetes (k8s) 1 主 2 node 集群的详细步骤:

虚拟机配置

1. 检查 Netplan 配置文件

确保你的 Netplan 配置文件(通常位于 /etc/netplan/ 目录下,例如 01-netcfg.yaml)内容正确。以下是一个正确的静态 IP 配置示例:

yaml复制

network:
  version: 2
  ethernets:
    enp0s5:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

2. 应用 Netplan 配置

运行以下命令重新应用 Netplan 配置:

bash复制

sudo netplan apply

3. 检查网络服务状态

运行以下命令检查网络服务的状态:

bash复制

sudo systemctl status systemd-networkd

如果服务未运行,可以尝试重启它:

bash复制

sudo systemctl restart systemd-networkd

4.配置时区

要将Ubuntu的时区设置为北京时间(中国标准时间,CST),可以按照以下步骤进行:

timedatectl是一个用于管理系统时间和时区的命令行工具。

  1. 列出可用的时区:您可以列出所有可用的时区以确认时区名称:
timedatectl list-timezones | grep Shanghai

您应该会看到Asia/Shanghai,这就是北京时间。

  1. 设置时区为Asia/Shanghai:使用以下命令将时区设置为北京时间:
sudo timedatectl set-timezone Asia/Shanghai
  1. 验证时区设置:确认时区已正确设置:
timedatectl

输出中应该显示Time zone: Asia/Shanghai

环境准备

  1. 准备三台 Ubuntu 服务器
    • 1 台主节点(Master)
    • 2 台工作节点(Worker)
    • 确保所有节点可以互相通信,关闭防火墙和 SELinux(Ubuntu 默认没有 SELinux)。
  2. 配置主机名和 hosts 文件(在所有节点上执行):

bash复制

# 设置主机名
hostnamectl set-hostname <node-name>  # 例如:k8s-master, k8s-node1, k8s-node2

# 修改 /etc/hosts 文件
cat >> /etc/hosts << EOF
<master-ip> k8s-master
<node1-ip> k8s-node1
<node2-ip> k8s-node2
EOF
  1. 关闭防火墙和 Swap(在所有节点上执行):

bash复制

# 关闭防火墙
sudo systemctl stop ufw
sudo systemctl disable ufw

# 关闭 Swap
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab
  1. 配置网络设置(在所有节点上执行):

bash复制

# 添加 sysctl 配置
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF

# 加载模块并应用配置
sudo modprobe br_netfilter
sudo sysctl --system
  1. 时间同步(在所有节点上执行):

bash复制

sudo apt install -y chrony
sudo systemctl start chrony
sudo systemctl enable chrony

apt 源替换成 阿里云

在 Ubuntu 24.04 中,软件源配置文件的路径已经从传统的 /etc/apt/sources.list 变更为 /etc/apt/sources.list.d/ubuntu.sources。以下是将 Ubuntu 24.04 的镜像源更换为阿里云镜像源的步骤:

步骤 1:备份原有的 ubuntu.sources 文件

在进行任何修改之前,建议先备份原有的 ubuntu.sources 文件:

bash复制

sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak

步骤 2:编辑 ubuntu.sources 文件

使用文本编辑器(如 nanovim)打开 /etc/apt/sources.list.d/ubuntu.sources 文件:

bash复制

sudo nano /etc/apt/sources.list.d/ubuntu.sources

步骤 3:替换为阿里云的镜像源

将文件内容替换为以下内容:

plaintext复制

Types: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

步骤 4:保存并退出

nano 编辑器中,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出。

步骤 5:更新软件源

运行以下命令更新软件源:

bash复制

sudo apt update

步骤 6:验证镜像源

运行以下命令查看当前使用的镜像源:

bash复制

cat /etc/apt/sources.list.d/ubuntu.sources

你应该会看到阿里云的镜像源地址。

步骤 7:升级软件包(可选)

如果你希望升级系统中的软件包,可以运行以下命令:

bash复制

sudo apt upgrade

通过以上步骤,你已经成功将 Ubuntu 24.04 的镜像源更换为阿里云的镜像源。这将提高软件更新和安装的速度,特别是在中国大陆地区。

注意 arm 架构

根据你的描述,你在使用 Ubuntu 24.04 的 arm64 架构时,发现使用自带的镜像源可以正常 update,但替换成清华和阿里云的镜像源后出现了问题。这可能是由于镜像源的路径或配置不正确导致的。

解决方法

1. 检查镜像源路径

对于 arm64 架构,清华和阿里云的镜像源路径需要特别处理。你需要在 URI 中添加 -ports 后缀。以下是正确的配置:

清华源

plaintext复制

Types: deb
URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
阿里云源

plaintext复制

Types: deb
URIs: http://mirrors.aliyun.com/ubuntu-ports/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

2. 修改 /etc/apt/sources.list.d/ubuntu.sources 文件

/etc/apt/sources.list.d/ubuntu.sources 文件内容替换为上述配置之一。例如,使用清华源:

bash复制

sudo nano /etc/apt/sources.list.d/ubuntu.sources

将文件内容替换为:

plaintext复制

Types: deb
URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

保存并退出。

3. 更新软件源

运行以下命令更新软件源:

bash复制

sudo apt update

4. 验证镜像源

运行以下命令查看当前使用的镜像源:

bash复制

cat /etc/apt/sources.list.d/ubuntu.sources

你应该会看到清华源或阿里云源的地址。

5. 升级软件包(可选)

如果你希望升级系统中的软件包,可以运行以下命令:

bash复制

sudo apt upgrade

其他建议

  • 检查网络连接:确保你的网络连接正常,可以访问外部网站。
  • 清理缓存:运行 sudo apt clean 清理缓存,然后重新更新软件源。
  • 检查系统版本:确保你的系统版本是 Ubuntu 24.04,可以运行 lsb_release -a 查看系统版本信息。

如果问题仍然存在,可以尝试访问其他镜像源,或者检查清华和阿里云镜像源的官方文档,了解是否支持你的系统版本和架构。

开始安装

在国内安装Kubernetes时,由于网络限制,可能无法直接访问外网资源。以下是适用于国内环境的安装指南:

1. 更新系统

首先,确保系统软件包是最新的:

sudo apt update
sudo apt upgrade -y

2. 安装必要的依赖

安装apt-transport-httpsca-certificatescurl

sudo apt install -y apt-transport-https ca-certificates curl

3. 添加Kubernetes的APT源

导入阿里云的GPG密钥:

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

添加阿里云的Kubernetes APT源:

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

4. 更新APT包索引

sudo apt update

这个警告是因为APT正在逐步弃用将密钥存储在/etc/apt/trusted.gpg文件中的做法。为了消除这个警告,我们需要将密钥移到/etc/apt/trusted.gpg.d/目录中,并确保它是以二进制格式存储的。以下是解决方法:

解决方法

  1. 删除旧的密钥:首先,删除旧的密钥:
sudo apt-key del B53DC80D13EDEF05
  1. 重新添加密钥到正确的位置:使用gpg --dearmor将密钥转换为二进制格式并存储在/etc/apt/trusted.gpg.d/目录中:
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg > /dev/null
  1. 更新APT包索引:重新运行apt update以确保警告消失:
sudo apt update

结论

通过以上步骤,您应该能够解决这个警告。确保密钥文件是二进制格式的.gpg文件,并存储在/etc/apt/trusted.gpg.d/目录中,以便APT能够正确识别和使用它。这样做不仅符合APT的最新建议,还能避免将来可能的兼容性问题。

5. 安装Kubernetes组件

安装kubeletkubeadmkubectl

sudo apt install -y kubelet kubeadm kubectl

确保这些包不会被自动更新:

sudo apt-mark hold kubelet kubeadm kubectl

6. 禁用交换分区

Kubernetes要求禁用交换分区:

sudo swapoff -a

为了永久禁用交换,编辑/etc/fstab文件并注释掉任何交换分区的行。

如果所有节点都显示为Ready,则说明Kubernetes集群已成功安装并运行。

在Kubernetes集群中,某些步骤需要在所有节点上执行,而其他步骤仅在主节点或工作节点上执行。以下是详细的步骤说明:

1. 在所有节点上执行

安装必要的依赖

在所有节点上安装apt-transport-httpsca-certificatescurl

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl

添加Kubernetes的APT源

在所有节点上添加阿里云的Kubernetes APT源:

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg > /dev/null

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sudo apt update

安装Kubernetes组件

在所有节点上安装kubeletkubeadmkubectl

sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

安装并配置containerd

在所有节点上安装并配置containerd:

sudo apt install -y containerd

sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
### 注意  registry.aliyuncs.com/google_containers/pause:3.9
sudo systemctl restart containerd
sudo systemctl enable containerd

禁用交换分区

在所有节点上禁用交换分区:

sudo swapoff -a

编辑/etc/fstab文件,注释掉任何交换分区的行以永久禁用。

2. 在主节点上执行

初始化Kubernetes集群

在主节点上初始化Kubernetes集群:

sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers

完成后,按照输出中的指示配置kubectl

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

部署网络插件

在主节点上部署网络插件(以Calico为例):

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

3. 在工作节点上执行

加入Kubernetes集群

在每个工作节点上,使用kubeadm join命令加入集群。该命令在初始化主节点时会输出,类似于:

kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>

4. 验证集群状态

在主节点上,检查节点状态:

kubectl get nodes

如果所有节点都显示为Ready,则说明Kubernetes集群已成功安装并运行。

通过以上步骤,您应该能够在所有节点上正确安装和配置Kubernetes集群。请根据您的具体需求选择合适的网络插件和配置。

posted @   春水鸿鹄  阅读(270)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示