1
头图

0.基础环境

类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器(ArmV8 指令集)
系统:银河麒麟操作系统 V10 SP1(2203)

关键词:
信创,麒麟系统,linux,c++,c,飞腾,arm,kubernetes,k8s,minikube,microk8s

1.背景

研发人员有时候会有k8s环境构建的需求,在x86上我们可以通过minikube,rancher,kubesphere等来构建这个环境。但考虑到飞腾处理器目前的处理速度,我们更多的只是构建起单机试验环境,minikube或microk8s是较好的选择,也好入手快速构建一个k8s集群单机版。

2.minikube安装

sudo apt install docker-compose docker-doc docker.io docker-registry #安装docker相关组件
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64 #下载二进制包
sudo install minikube-linux-arm64 /usr/local/bin/minikube #安装
sudo usermod -aG docker $USER && newgrp docker #将当前用户加入docker用户组

3.启动minikube

3.1 保证gcr.io可以访问的准备工作

如果有其他方式也可以,能访问就行

sudo apt-get install proxychains 
sudo vim /etc/proxychains.conf

图片.png
使用proxychains bash #使bash中所有命令都走代理 

minikube start #会拉包,需要能够访问image 'gcr.io/k8s-minikube/kicbase:v0.0.37' locally 详细可参考本专栏命令行代理上网那一篇文章

3.2 错误处理

执行minikube start可能出现错误一:docker: failed to register layer: ApplyLayer exit status 1 stdout: stderr: archive/tar: invalid tar header.
解决办法,参考本站文章https://segmentfault.com/a/1190000042634466
解决方案一,移动unpigz可执行文件位置使其不解压
mv /usr/bin/unpigz /usr/bin/unpigz.bak
再重试minikube start
图片.png
接下来,就可以参照https://minikube.sigs.k8s.io/docs/start/进行集群操作,部署应用了。
图片.png
执行 minikube kubectl -- get po -A 后效果
图片.png
执行alias kubectl="minikube kubectl --" 建立别名,特别说明:如果没有建立别名,minikube kubectl -f执行会报-f出错。

4.microk8s安装

注意:如果遇到拉包和一些相关的问题,请参考minikube安装过程中的解决办法
microk8s安方指南链接:https://microk8s.io/#install-microk8s
1.安装microk8s

sudo snap install microk8s --classic #提前准备好snap的基础环境,可参考综合篇中相关内容

图片.png
2.将相关的用户加入组和赋权

sudo usermod -a -G microk8s long #long需要改成你当前的用户名,本命令中是我的
sudo chown -R long ~/.kube #long需要改成你当前的用户名,本命令中是我的
newgrp microk8s #使组信息生效,重启也可以。

图片.png
3.检测是否成功

microk8s status --wait-ready

图片.png
4.接下来的操作就是microk8s的操作了,具体使用参见其官方文档即可。
图片.png

5.rancher的安装与使用(用于管理k8s)

大家也可以选别的管理员,本文只对rancher做一个示例
最简单的方式:

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  --privileged \
  rancher/rancher:latest 

图片.png
完成后,在浏览器中输入https://localhost 访问
图片.png
我们以docker方式运行的,所以通过下面的方式获取默认的密码

docker logs  container-id  2>&1 | grep "Bootstrap Password:" #container-id通过 docker container list | grep "rancher" 获取

登录成功后,根据提示更改密码
图片.png
接下来导入minikube的k8s集群即可,具体操作见
图片.png
类型选generic
图片.png
图片.png
选择在命令行中执行

curl --insecure -sfL https://localhost/v3/import/hpwr9psxzhcmt5qwlqjk96v5ntsktkhcttzk5f6qvckr2sh8kdhtfg_c-m-r6gzn8dj.yaml | kubectl apply -f -

图片.png
执行结果见
图片.png
安装成功,点击浏览器的刷新按钮
图片.png
如果还是Pending状态,就耐心等待一段时间,再刷新尝试。

6.写在最后

搭建过程中,遇到不少问题。这是x86_64处理器平台所没有的,但经过各方面找资料和一步步排错,按照教程走可以很快搭起来,过程中会上网拉docker镜像,具体用时取决于大家所处的网络速度。其他就是还需要访问gcr.io,这个可能麻烦一点,除了本文的方法外,还可以找找goproxy.io的资料,看是否有更简洁的办法。

6.1 gcr.io镜像加速设置(未测试,仅供参考)

参考:https://cloud.tencent.com/developer/article/1945836的方法
解决方案:镜像加速器

针对 Docker Hub ,Docker 官方和国内各大云服务商均提供了 Docker 镜像加速服务。

你只需要简单配置一下(以 Linux 为例):

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["镜像加速器"]
}
EOF

sudo systemctl daemon-reload
sudo service docker restart

图片.png
此办法也只能针对 docker.io

祝女同志们节日快乐

麒麟系统专栏:
地址一:https://segmentfault.com/blog/kylinos
邮箱:1179611323@qq.com
群:662512340
github:https://github.com/xiaohelong
twitter:https://twitter.com/xiaohelong
发行日志:
20230308 12:20 首发
20230309 12:20 补充microk8s环境搭建信息
20230309 15:30 补充Rancher的安装信息


码上世界
74 声望280 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男