注:本文章内容主要以官方文档为基础进行安装

1. 更新 apt

apt update
apt upgrade -y

2. 安装microk8s

# 查看所有microk8s版本信息
sudo snap info microk8s
# 以当前最新版本1.28为例
sudo snap install microk8s --classic --channel=1.28/stable

2.1. 设置别名(可选,方便操作)

# 后续都使用的别名,需要注意识别
sudo snap alias microk8s mk8s
sudo snap alias microk8s.kubectl kubectl

3. 配置docker镜像仓库

由于国内众所周知的问题,某些镜像无法拉取导致microk8s启动失败,可以根据官方文档内容修改为阿里云的镜像仓库。

官方文档内容截图

# 官方文档配置镜像仓库方法
# create a directory with the registry name
sudo mkdir -p /var/snap/microk8s/current/args/certs.d/registry.k8s.io

# create the hosts.toml file pointing to the mirror
echo '
server = "registry.k8s.io"

[host."https://registry.aliyuncs.com/v2/google_containers"]
  capabilities = ["pull", "resolve"]
  override_path = true
' | sudo tee -a /var/snap/microk8s/current/args/certs.d/registry.k8s.io/hosts.toml
# 重启microk8s
sudo snap restart microk8s

4. 重启microk8s

mk8s stop
mk8s start

5. 状态查看

5.1. 查看运行状态及可用功能

mk8s status

mk8s status

5.2. 启用功能(根据需要启用)

mk8s enable dns rbac dashboard ingress

6. pod相关

6.1. 查看pod信息

都是running就是正常的

kubectl get po -n [namespace]

6.2. 查看单个pod的log

sudo kubectl describe pods [pot name] -n [namespace]

问题

Q1:开启 ingress 等报找不到镜像问题

A1:外部导入镜像

# 0. 下载pullk8s
sudo curl -L "https://raw.githubusercontent.com/OpsDocker/pullk8s/main/pullk8s.sh" -o /usr/local/bin/pullk8s
sudo chmod +x /usr/local/bin/pullk8s
# 1. 安装docker用来下载镜像包
sudo snap install docker
# 2. 检查缺少的包有哪些
sudo pullk8s check --microk8s
# 3. 使用 pullk8s 拉取失败的镜像,并导入到 pod 空间中
sudo pullk8s pull [步骤2中返回的镜像名称] --microk8s
# 注:集群情况下可能需要每个节点解决一下.

Q2:安装helm3速度慢问题

A1:修改自带的安装脚本

#!/usr/bin/env bash

set -e
# 添加参数配置
SNAP=/snap/microk8s/3699
SNAP_DATA=/var/snap/microk8s/3699

source $SNAP/actions/common/utils.sh
CA_CERT=/snap/core18/current/etc/ssl/certs/ca-certificates.crt

echo "Enabling Helm 3"

if [ ! -f "${SNAP_DATA}/bin/helm3" ]
then
  # 修改为 华为源
  SOURCE_URI="https://mirrors.huaweicloud.com/helm/v3.5.0/"
  # 修改版本
  HELM_VERSION="v3.5.0"

  echo "Fetching helm version $HELM_VERSION."
  run_with_sudo mkdir -p "${SNAP_DATA}/tmp/helm"
  (cd "${SNAP_DATA}/tmp/helm"
  # 修改为 linux-amd64
  run_with_sudo "${SNAP}/usr/bin/curl" --cacert $CA_CERT -L $SOURCE_URI/helm-$HELM_VERSION-linux-amd64.tar.gz -o "$SNAP_DATA/tmp/helm/helm.tar.gz"
  run_with_sudo gzip -f -d "$SNAP_DATA/tmp/helm/helm.tar.gz"
  run_with_sudo tar -xf "$SNAP_DATA/tmp/helm/helm.tar")

  run_with_sudo mkdir -p "$SNAP_DATA/bin/"
  # 修改为 linux-amd64
  run_with_sudo mv "$SNAP_DATA/tmp/helm/linux-amd64/helm" "$SNAP_DATA/bin/helm3"
  run_with_sudo chmod +x "$SNAP_DATA/bin/"
  run_with_sudo chmod +x "$SNAP_DATA/bin/helm3"

  run_with_sudo rm -rf "$SNAP_DATA/tmp/helm"
fi

echo "Helm 3 is enabled"
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐