【Microk8s】Microk8s v1.23在Ubuntu20.04上部署
Ubuntu20.04部署Microk8s v1.23
·
Microk8s v1.23在Ubuntu20.04上部署
1. 更新 apt
apt update
apt upgrade -y
2. 安装microk8s(1.23版本)
sudo snap install microk8s --classic --channel=1.23/stable
2.1. 设置别名(可选,方便操作)
# 后续都使用的别名,需要注意识别
sudo snap alias microk8s mk8s
sudo snap alias microk8s.kubectl kc
3. 赋予脚本权限并执行images.sh脚本(目前自测该脚适配 1.23版本)
vim images.sh
#!/bin/bash
images=(
k8s.gcr.io/pause:3.1=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1
k8s.gcr.io/metrics-server/metrics-server:v0.5.2=registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.5.2
k8s.gcr.io/ingress-nginx/controller:v1.1.0=registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.0
)
OIFS=$IFS;
for image in ${images[@]};do
IFS=’=’
set $image
microk8s.ctr image pull $2
microk8s.ctr image tag $2 $1
microk8s.ctr image rm $2
IFS=$OIFS;
done
sudo chmod 777 images.sh
./images.sh
4. 重启microk8s
mk8s stop
mk8s start
5. 状态查看
5.1. 查看运行状态及可用功能
mk8s status
5.2. 启用功能(根据需要启用)
mk8s enable dns rbac dashboard ingress
- 如果ingress安装时查看信息提示找不到镜像,查看Q1解决办法。
6. pod相关
6.1. 查看pod信息
都是running就是正常的
kc get po -n [namespace]
6.2. 查看单个pod的log
sudo kc describe pods [pot name] -n [namespace]
7. Dashboard相关
7.1. 修改web的端口
# 通过编辑命令打开yaml文件编辑界面
kc edit svc -n kube-system kubernetes-dashboard
# 在spec节点下添加 externalIPs 可以开启ip访问
spec:
externalIPs:
- xxx.xxx.xxx.xxx
7.2. 访问页面
https://ip:443
- 因为没有SSL证书认证,所以直接点高级,再点继续前往。
7.3. 获取token,登录Dashboard(如果安装了rbac看7.4)
mk8s dashboard-proxy
7.4. rbac管理下登录dashboard
7.4.1. 编写yaml文件并应用
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
kc apply -f <yaml文件路径>
7.4.2. 获取admin-user的token
kc -n kube-system describe secret $(microk8s.kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
8.集群相关
8.1. 添加节点
# 在主节点执行,获取在其他节点执行加入节点的命令
mk8s add-node
- 获取到添加到集群的命令(后面带 --worker 的将被添加为工作节点)
- v1.20以上版本有三个非worker节点可以自动开启高可用
9. 相关配置修改
9.1. 修改Sandbox Image
# 编辑配置文件
vim /var/snap/microk8s/current/args/containerd-template.toml
# 将sandbox_image从"k8s.gcr.io/pause:3.1"修改为
sandbox_image = "registry.cn-shenzhen.aliyuncs.com/juxuny-google-containers/pause:3.1"
9.2. 修改microk8s 里面 DNS 服务
# 1.进入配置文件
kc -n kube-system edit configmap/coredns
# 2.修改 8.8.8.8 和 8.8.4.4 为需要的 DNS
附:问题及解决方法
Q1:开启 ingress 报找不到镜像问题
A1:外部导入镜像
# 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"
更多推荐
已为社区贡献4条内容
所有评论(0)