# k8s安装教程 **Repository Path**: ing/k8sInstallation ## Basic Information - **Project Name**: k8s安装教程 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-06 - **Last Updated**: 2024-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **ARM64 单机操作系统上安装 k8s(版本 1.31.3),需要准备以下组件和服务** ### 1. 环境准备 #### 1.1 操作系统要求 * ARM64 架构的 Linux 操作系统(如 kylin v10)。 * 具有 root 权限或 sudo 权限的用户。 #### 1.2 安装基础组件 Kubernetes 需要一些基础组件,如 `kubelet`、`kubeadm` 和 `kubectl`,以及 Docker 或 containerd 作为容器运行时。 ##### 1.2.1 更新系统软件包 确保系统的软件包是最新的: ```shell sudo apt-get update && sudo apt-get upgrade -y ``` #### 1.3 安装容器运行时(Docker 或 containerd) Kubernetes 支持多种容器运行时,最常用的是 Docker 或 containerd。 **安装 Docker(推荐)** : ```bash # 安装必要的依赖 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y # 导入 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加 Docker 仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 安装 Docker CE sudo apt-get update sudo apt-get install docker-ce -y # 启动并设置 Docker 开机启动 sudo systemctl enable --now docker ``` **安装 containerd** : ```bash # 安装必要的依赖 sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl # 添加 containerd GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加 containerd 仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 安装 containerd sudo apt-get update && sudo apt-get install containerd -y # 启动 containerd 并设置开机启动 sudo systemctl enable --now containerd ``` #### 1.4 安装 Kubernetes(kubeadm, kubelet 和 kubectl) ##### 1.4.1 安装 Kubernetes 仓库 ```bash # 添加 Kubernetes 的 GPG 密钥 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - # 添加 Kubernetes 的仓库 echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list ``` ##### 1.4.2 安装 `kubeadm`、`kubelet` 和 `kubectl` ```bash # 更新 apt 包索引 sudo apt-get update # 安装 kubeadm、kubelet 和 kubectl sudo apt-get install -y kubeadm=v1.31.0 kubelet=v1.31.0 kubectl=v1.31.0 # 禁止自动更新 kubeadm、kubelet 和 kubectl sudo apt-mark hold kubeadm kubelet kubectl ``` #### 1.5 禁用 swap Kubernetes 要求禁用系统的 swap: ```bash # 临时禁用 swap sudo swapoff -a # 永久禁用 swap(注释掉 /etc/fstab 中的 swap 行) sudo sed -i '/swap/d' /etc/fstab ``` #### 1.6 配置 sysctl Kubernetes 需要一些 sysctl 配置来允许网络流量: ```bash # 设置 Kubernetes 网络配置 sudo modprobe br_netfilter sudo sysctl net.bridge.bridge-nf-call-ip6tables=1 sudo sysctl net.bridge.bridge-nf-call-iptables=1 sudo sysctl net.ipv4.ip_forward=1 # 将配置写入 sysctl 配置文件以便重启后生效 echo "net.bridge.bridge-nf-call-ip6tables=1" | sudo tee -a /etc/sysctl.conf echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf ``` ### 2. 初始化 Kubernetes 集群 #### 2.1 初始化 Kubernetes 集群 使用 `kubeadm` 初始化 Kubernetes 集群。可以选择配置单节点(master 节点)集群: ```bash sudo kubeadm init --kubernetes-version=v1.31.0 --pod-network-cidr=192.168.0.0/16 ``` 此命令将初始化 Kubernetes 控制平面,并显示一个 `kubeadm join` 命令,供后续节点加入集群时使用。记下该命令,因为你将用它来添加工作节点。 #### 2.2 配置 kubectl 为了能够在当前节点使用 `kubectl`,你需要将 kubeconfig 配置文件复制到用户的 `.kube` 目录中: ```bash # 创建 .kube 目录(如果不存在) mkdir -p $HOME/.kube # 复制 kubeconfig 文件 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # 设置正确的权限 sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` #### 2.3 安装网络插件 Kubernetes 集群需要一个网络插件才能使 Pod 之间通信。这里我们使用 Calico 插件作为示例: ```bash kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml ``` ### 3. 加入工作节点 在每个工作节点上运行 `kubeadm join` 命令(来自 `kubeadm init` 输出的命令),将它们加入集群。 ### 4. 查看集群状态 完成上述步骤后,可以使用 `kubectl` 检查集群的状态: ```bash kubectl get nodes ``` ### 5. 配置 kube-proxy 如果你的集群使用的是 Docker 作为容器运行时,通常会自动启动 `kube-proxy`。你可以验证它是否正在运行: ```bash kubectl get pods -n kube-system ``` ## 参考文档 ```bash https://kubernetes.io/releases/download/ ```