从零开始部署k8s到运行server服务
1. sealos部署k8s
首先注意sealos安装的时候不能有docker,如果有docker
-
sudo apt remove docker
-
sudo apt autoremove
-
# 查询相关软件包dpkg -l | grep docker# 删除这个包sudo apt remove --purge 对应的包名
如果想安装docker
sudo apt install docker.io
执行以上命令卸载后,打开root的密码登陆
-
cd /etc/ssh
-
vim sshd_config #在找到#PermitRootLogin prohibit-password,默认是注释掉的。直接在下面添加一行:PermitRootLogin yes,然后按esc,输入:wq保存并退出。
同时记得更改主机名字为你想要的名字
-
vim /etc/hostname #更改名字后按esc输入wq保存
-
hostname master #直接更改主机名字
准备好sealos所必需的一些包,官网为sealos | sealos
-
$ wget https://sealyun-home.oss-accelerate.aliyuncs.com/images/buildah.linux.amd64 --no-check-certificate -O buildah
-
$ chmod a x buildah && mv buildah /usr/bin
-
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos-4.0/latest/sealos-amd64 -O sealos && \
-
chmod x sealos && mv sealos /usr/bin
同时sealos还可以帮助你安装一下好用的小工具,例如helm,openebs等,可以自己在官网看,我们这里需要安装helm,以后会用到。
sealos run labring/helm:v3.8.2 # install helm
正式部署cluster
-
sealos run labring/kubernetes:v1.24.0 labring/calico:v3.22.1 \
-
--masters 10.6.5.221 \ #可以有无数个master
-
--nodes 10.6.5.222,10.6.5.223 -p 123456 #可以有无数个node,记得加上密码
至此,k8s集群部署完成。
2.给k8s部署dashboard,之后的ingress-nginx什么的改动用可视化工具都很方便。
一键就可以安装上了,但是没有连vpn的话,能不能连上网站挺看运气的,可以试试以下这个GitHub - 521xueweihan/GitHub520: 让你“爱”上 GitHub,解决访问时图裂、加载慢的问题。(无需安装)
-
kubectl apply -f https://raw.githubusercontent.com/kubernetes/1board/v2.6.0/aio/deploy/recommended.yaml
-
#直接一键部署,当然也可以上以上的网址看看dashboard和k8s版本的对应关系,我的k8s为1.24,所以dashboard安装为v2.6.0
同时这个版本好像需要你自己创建完一个service account后,才能获取token,我随便创建的名字叫admin user
kubectl apply -f dashboard-adminuser.yaml
-
apiVersion: v1
-
kind: ServiceAccount
-
metadata:
-
name: admin-user
-
namespace: kubernetes-dashboard
-
---
-
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: kubernetes-dashboard
经过以上过程后访问运行节点ip地址:端口号就可以看到dashboard了
https://10.6.5.223:31688/ 是我的访问地址
让你输入token的话,输入以下命令即可获得token,输入。
kubectl -n kubernetes-dashboard create token admin-user
看到以下场景代表已经成功,至此dashboard配置完成
3.给k8s用helm安装ingress-nginx
没有用helm直接拉取,因为我这边没有翻墙的原因,想要的仓库一直拉取不到,遂下载ingress-nginx的压缩包,自己写values.yaml下载了。不用我的方法,去helm官网找一个可以拉取到的效果应该一样
values.yaml如下
-
controller:
-
ingressClassResource:
-
name: nginx
-
enabled: true
-
default: true
-
controllerValue: "k8s.io/ingress-nginx"
-
admissionWebhooks:
-
enabled: false
-
replicaCount: 1
-
image:
-
# registry: k8s.gcr.io
-
# image: ingress-nginx/controller
-
# tag: "v1.1.0"
-
registry: registry.cn-hangzhou.aliyuncs.com
-
#image: unreachableg/k8s.gcr.io_ingress-nginx_controller
-
image: 谷歌_containers/nginx-ingress-controller
-
tag: "v1.1.2"
-
hostNetwork: true
-
nodeSelector:
-
kubernetes.io/hostname: master
-
affinity:
-
podAntiAffinity:
-
requiredDuringSchedulingIgnoredDuringExecution:
-
- labelSelector:
-
matchExpressions:
-
- key: kubernetes.io/hostname
-
operator: In
-
values:
-
- master
-
topologyKey: kubernetes.io/hostname
-
tolerations:
-
- key: node-role.kubernetes.io/master
-
operator: Exists
-
effect: NoSchedule
-
- key: node-role.kubernetes.io/master
-
operator: Exists
-
effect: PreferNoSchedule
同时因为我想把ingress跑在master,而master有taints不允许跑pod,我们先去掉污点,当然要是把ingress跑在非master节点就不需要管这个了
-
kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule- #去掉污点
-
kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule #加污点,区别只是-
-
kubectl taint nodes master node-role.kubernetes.io/master:NoSchedule-
把values.yaml和ingress-nginx ingress-nginx-4.1.2.tgz放在一个文件夹后即可安装成功
helm install ingress-nginx ingress-nginx-4.1.2.tgz --create-namespace -n ingress-nginx -f values.yaml
至此,ingress-nginx布置成功
4.部署正式服务
首先把要用的配置文件拉取过来,键入以下命令后,按照提示输入账号密码,就可以把远程仓库拉取过来了
git clone https://git.weinbc.com/k8s-falcon/k8s-falcon.git
克隆完成之后,可以看见项目名称,进去项目之后,可以看见一些git相关文件,切换到配置文件在的分支。
-
cd k8s-falcon #进入
-
git checkout origin/dev
这时候你就能看到配置文件了,在kubectl apply之前
-
cat falcon-deploy/README.md #看看需要的镜像,拉取所需的镜像。
-
因为每个配置文件都指定了运行在哪个节点,在对应节点拉取镜像即可。
-
nodeSelector:
-
kubernetes.io/hostname: master
拉取完所有需要的镜像后,就可以正式部署服务了其中mariadb,redis,rabbitmq和oss为底层
casbin和datapool为通用底层服务层,server-core为业务服务层,web和static为最高一层,从底层依次往上配置,当然也不用那么严谨。
-
cd falcon-deploy/yaml/
-
kubectl apply -f env/. #首先配置好环境
-
kubectl apply -f mariadb/.
-
kubectl apply -f redis/.
-
kubectl apply -f rabbitmq/.
-
kubectl apply -f oss/.
-
kubectl apply -f casbin/.
-
kubectl apply -f datapool/.
-
kubectl apply -f web/.
-
kubectl apply -f static/.
-
kubectl apply -f server-core/.
其中运行到mariadb时,需要导入数据库,不然没有数据,server-core无法给予正确服务
-
kubectl cp -n NAMESPACE_name FILE_name POD_name:NEW_FILE_name
-
source /var/lib/mysql/mysql-falcon-7011.2022-07-08_00-00-02.sql;导入资源
配置结束以上文件后,配置ingress
-
cd ../..
-
kubectl apply -f ingress-nginx/.
至此,部署完成,输入master的ip地址即可访问到服务,如图。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhahhe
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01