阿里云安装单机K8S

这个文章,主要是个人的操作记录。

我想体验一下最新版本(v1.22)的K8S版本

Kubernetes 镜像

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

Docker CE 镜像

yum install kubelet 
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装工具和依赖
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   # 配置 yum 安装源
yum makecache fast  # 快速生成缓存

安装kubelet

安装minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

这里我是windows科学上网之后下载的,然后传到机器上去。当然你也可以用阿里云的,试验机,当然是想试试最新版本的

用minikube创建 K8S集群

这一步,需要创建一个普通用户

useradd k8s
echo "alias suk='su - k8s'" >> ~/.bashrc

su - k8s

# 切换之后开始执行命令
minikube start --wait=false

参考了其他文章所指定的连接,总是遇到各种各样的问题,我这样直接从官网下载倒是没遇到什么问题,顺利启动了。

 

简单做个记录,有问题的小伙伴欢迎留言交流

<think>我们将在Ubuntu 22.04上安装单机版Kubernetes(即只有一个master节点,不加入工作节点)。以下是详细步骤: ### 步骤1: 系统准备 1. **禁用交换空间**(Kubernetes要求): ```bash sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用 ``` 2. **设置主机名**(可选,此处以`k8s-master`为例): ```bash sudo hostnamectl set-hostname k8s-master ``` 3. **加载内核模块**: ```bash cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter ``` 4. **配置网络参数**: ```bash cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system ``` ### 步骤2: 安装容器运行时(containerd) 1. **安装依赖**: ```bash sudo apt update sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates ``` 2. **添加Docker仓库**: ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ``` 3. **安装containerd**: ```bash sudo apt update sudo apt install -y containerd.io ``` 4. **配置containerd**: ```bash sudo containerd config default | sudo tee /etc/containerd/config.toml >/dev/null sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml sudo systemctl restart containerd sudo systemctl enable containerd ``` ### 步骤3: 安装Kubernetes组件 1. **添加Kubernetes仓库**(使用阿里云镜像): ```bash curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list ``` 2. **安装kubeadm, kubelet, kubectl**: ```bash sudo apt update sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本 ``` ### 步骤4: 初始化集群 ```bash sudo kubeadm init \ --apiserver-advertise-address=$(hostname -I | awk '{print $1}') \ --pod-network-cidr=192.168.0.0/16 \ --image-repository=registry.aliyuncs.com/google_containers ``` > 注意: > - `--apiserver-advertise-address` 使用本机IP(自动获取) > - `--pod-network-cidr` 使用Flannel网络插件的默认网段 > - 使用阿里云镜像仓库加速 ### 步骤5: 配置kubectl ```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: 安装网络插件(Flannel) ```bash kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml ``` ### 步骤7: 验证安装 ```bash kubectl get nodes # 应显示STATUS为Ready kubectl get pods -n kube-system # 检查核心组件运行状态 ``` ### 常见问题解决 1. **初始化时端口占用**: ```bash sudo kubeadm reset -f sudo fuser -k 6443/tcp 10250/tcp # 释放关键端口 ``` 2. **镜像拉取失败**: ```bash # 手动拉取镜像(替换<image-name>) sudo crictl pull registry.aliyuncs.com/google_containers/<image-name> ``` 3. **节点处于NotReady状态**: - 检查网络插件是否安装成功 - 查看kubelet日志:`journalctl -xu kubelet` > 提示:单节点集群默认不会调度Pod,如需部署应用需去除master污点: > ```bash > kubectl taint nodes --all node-role.kubernetes.io/control-plane- > ``` ### 引用说明 - 系统准备步骤参考Kubernetes官方文档[^1] - 容器运行时配置采用containerd官方建议[^2] - 阿里云镜像源加速方案来自国内部署实践[^3] §§相关问题§§ 1. 如何彻底卸载Ubuntu上的Kubernetes集群? 2. 单节点Kubernetes集群有哪些性能限制? 3. 如何为Kubernetes配置持久化存储? 4. 如何升级单节点Kubernetes版本? 5. 在Kubernetes单节点上如何部署多节点应用? </think>### Ubuntu 22.04 单机版 Kubernetes 安装指南 #### 一、系统准备 1. **禁用交换空间**(Kubernetes 强制要求): ```bash sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用 ``` 2. **配置主机名解析**: ```bash echo "$(hostname -I | awk '{print $1}') $(hostname)" | sudo tee -a /etc/hosts ``` 3. **加载内核模块**: ```bash cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay && sudo modprobe br_netfilter ``` 4. **设置网络参数**: ```bash cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system ``` #### 二、安装容器运行时(containerd) 1. **安装依赖**: ```bash sudo apt update sudo apt install -y curl gnupg2 software-properties-common ``` 2. **添加 Docker 仓库**: ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 3. **安装 containerd**: ```bash sudo apt update sudo apt install -y containerd.io ``` 4. **配置 containerd**: ```bash sudo containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml sudo systemctl restart containerd ``` #### 三、安装 Kubernetes 组件 1. **添加阿里云镜像源**: ```bash curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list ``` 2. **安装组件**: ```bash sudo apt update sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本 ``` #### 四、初始化单节点集群 ```bash sudo kubeadm init \ --apiserver-advertise-address=$(hostname -I | awk '{print $1}') \ --pod-network-cidr=10.244.0.0/16 \ --image-repository=registry.aliyuncs.com/google_containers \ --ignore-preflight-errors=NumCPU # 单机可忽略CPU检查 ``` > 📌 注意: > - `--apiserver-advertise-address` 使用本机IP > - `--pod-network-cidr` 使用 Flannel 的默认网段 > - 阿里云镜像加速避免超时问题[^3] #### 五、配置访问权限 ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # 允许在master节点部署Pod kubectl taint nodes --all node-role.kubernetes.io/control-plane- ``` #### 六、安装网络插件(Flannel) ```bash kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml ``` #### 七、验证安装 ```bash kubectl get nodes # 应显示 STATUS=Ready kubectl get pods -n kube-system # 检查核心组件 ``` #### 八、测试部署 ```bash kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get svc nginx # 访问输出的端口号验证 ``` ### 常见问题解决 1. **初始化失败**: ```bash sudo kubeadm reset -f sudo rm -rf /etc/cni/net.d /etc/kubernetes/ ~/.kube/ ``` 2. **镜像拉取失败**: ```bash sudo kubeadm config images pull \ --image-repository=registry.aliyuncs.com/google_containers ``` 3. **端口占用冲突**: ```bash sudo fuser -k 6443/tcp 10250/tcp # 释放关键端口 ``` > 💡 **提示**:单节点集群适合开发测试,生产环境建议至少3节点[^1] ### 引用说明 - 内核参数配置参考 Kubernetes 官方文档[^1] - 阿里云镜像源加速方案来自国内部署实践[^3] - 单节点调度优化基于控制平面节点调度规则[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值