ubuntu 安装k8s单机版
时间: 2023-11-08 11:01:02 浏览: 231
为在Ubuntu上安装K8S单机版,你需要安装kubectl和minikube。kubectl是K8S的命令行客户端,而minikube是单机版的K8S服务端。请按照以下步骤进行安装:
1. 安装kubectl:
- 打开终端或命令行窗口。
- 运行以下命令安装kubectl:
```
sudo snap install kubectl --classic
```
2. 安装minikube:
- 打开终端或命令行窗口。
- 运行以下命令下载minikube二进制文件:
```
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
```
- 运行以下命令将minikube二进制文件移动到`/usr/local/bin`目录下,并授予执行权限:
```
sudo install minikube-linux-amd64 /usr/local/bin/minikube
```
安装完成后,你现在就可以在Ubuntu上使用K8S单机版了。
相关问题
ubuntu安装k8s单机
### 安装前准备
为了确保 Kubernetes 能够正常运行于 Ubuntu 上,需先确认系统的版本以及更新状态。对于Ubuntu 服务器版而言,建议使用最新的稳定版本以获得更好的兼容性和安全性支持[^2]。
```bash
sudo apt update && sudo apt upgrade -y
```
### 配置APT源并安装Docker
考虑到容器化应用的需求,首先应配置 APT 源来启用 HTTPS 方式访问 Docker 的官方仓库,并完成 Docker CE 的安装:
```bash
# 设置必要的依赖包以便能够通过HTTPS方式使用apt仓库
sudo apt install ca-y
# 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置stable通道作为默认来源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新APT包索引
sudo apt-get update
# 安装最新版本的Docker Engine和其他组件
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
```
此部分操作同样适用于 CentOS 和其他 Linux 发行版中的二进制文件安装过程[^3]。
### 关闭Swap分区
Kubernetes 不允许开启 swap 分区,因此需要关闭它:
```bash
sudo sed -i '/swap/d' /etc/fstab # 注释掉fstab里的swap项
sudo swapoff -a # 立即禁用所有交换空间
```
### 安装 kubeadm, kubelet 和 kubectl
接下来将设置 Kubernetes 的 APT 存储库,并从中获取 `kubeadm`、`kubelet` 及 `kubectl` 工具用于集群初始化和服务管理:
```bash
# 启用k8s存储库
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
# 加载模块
sudo modprobe overlay
sudo modprobe br_netfilter
# 设置sysctl参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 应用更改
sudo sysctl --system
# 添加Google Cloud GPG key
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# 将Kubernetes APT repository添加到系统中
sudo bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF'
# 刷新软件列表并锁定特定版本号(此处假设为v1.24.x系列)
sudo apt-get update
sudo apt-get install -y kubelet=1.24.* kubeadm=1.24.* kubectl=1.24.*
# 锁定这些包不被自动升级覆盖
sudo apt-mark hold kubelet kubeadm kubectl
```
上述命令会根据当前使用的 Ubuntu 版本来适配合适的 Kubernetes 版本范围[^4]。
### 初始化 Kubernetes Master Node
当所有的前置条件都满足之后,则可以通过下面这条指令来进行 master node 的初始化工作:
```bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
```
这一步骤将会创建一个新的控制平面节点,并指定 Flannel CNI 插件所需的 IP 地址池 CIDR。
### 配置 Kubeconfig 文件
为了让普通用户也拥有足够的权限去管理和查看集群的状态信息,还需要做额外的配置处理:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
至此,已经完成了单机版 Kubernetes 在 Ubuntu 平台上的搭建流程。
ubuntu k8s单机版部署
### 部署单节点Kubernetes集群于Ubuntu
#### 准备工作
为了在Ubuntu上安装并配置单节点的Kubernetes环境,需先确保Linux操作系统已正常运行且Docker已经成功安装[^1]。
#### 安装必要的软件包
更新本地APT仓库索引,并添加Google的Kubernetes APT源:
```bash
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
```
接着再次刷新APT缓存并安装`kubelet`, `kubeadm` 和 `kubectl`工具集:
```bash
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
```
上述命令会自动拉取最新的稳定版本;如果想要指定特定版本,则可以在最后加上=`<version>`参数。
#### 初始化Master Node
由于目标是构建单一节点集群,在此阶段也将当前机器初始化为主节点(master node),执行如下指令启动该过程:
```bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
```
这条语句中的CIDR范围用于Flannel网络插件,默认情况下推荐使用这个区间。完成之后按照屏幕提示设置管理员权限以便后续操作更加便捷。
#### 设置Kube Config文件
为了让普通用户能够访问API Server而无需每次都输入完整的认证路径,可以创建或修改用户的`.kube/config` 文件链接到 `/etc/kubernetes/admin.conf`.
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
这一步骤简化了CLI交互流程,使得管理变得简单许多。
#### 应用CNI(容器网络接口)
Kubernetes本身并不自带任何具体的网络解决方案,因此需要额外引入第三方组件来负责Pod间的通信功能。这里选用流行的Flannel作为例子说明如何加载相应的DaemonSet YAML定义文档:
```bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
等待片刻直到所有资源都处于就绪状态即可继续下一步动作。
#### 测试部署
验证整个系统的健康状况以及能否正常使用,可以通过下面的方式快速建立一个Nginx服务实例来进行测试:
```bash
kubectl create deployment nginx --image=nginx:latest --namespace=default
kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80 --name=webserver
```
此时应该能够在浏览器里通过主机IP地址加随机分配给Web服务器暴露出来的端口号浏览到默认页面[^4]。
阅读全文
相关推荐
















