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
使用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
接下来,就可以参照https://minikube.sigs.k8s.io/docs/start/进行集群操作,部署应用了。
执行 minikube kubectl -- get po -A
后效果
执行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的基础环境,可参考综合篇中相关内容
2.将相关的用户加入组和赋权
sudo usermod -a -G microk8s long #long需要改成你当前的用户名,本命令中是我的
sudo chown -R long ~/.kube #long需要改成你当前的用户名,本命令中是我的
newgrp microk8s #使组信息生效,重启也可以。
3.检测是否成功
microk8s status --wait-ready
4.接下来的操作就是microk8s的操作了,具体使用参见其官方文档即可。
5.rancher的安装与使用(用于管理k8s)
大家也可以选别的管理员,本文只对rancher做一个示例
最简单的方式:
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
--privileged \
rancher/rancher:latest
完成后,在浏览器中输入https://localhost 访问
我们以docker方式运行的,所以通过下面的方式获取默认的密码
docker logs container-id 2>&1 | grep "Bootstrap Password:" #container-id通过 docker container list | grep "rancher" 获取
登录成功后,根据提示更改密码
接下来导入minikube的k8s集群即可,具体操作见
类型选generic
选择在命令行中执行
curl --insecure -sfL https://localhost/v3/import/hpwr9psxzhcmt5qwlqjk96v5ntsktkhcttzk5f6qvckr2sh8kdhtfg_c-m-r6gzn8dj.yaml | kubectl apply -f -
执行结果见
安装成功,点击浏览器的刷新按钮
如果还是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
此办法也只能针对 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的安装信息
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。