• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

从零开始部署k8s到运行server服务

武飞扬头像
爱吃鱼的猪鼻
帮助5

1. sealos部署k8s

首先注意sealos安装的时候不能有docker,如果有docker

  1.  
    sudo apt remove docker
  2.  
    sudo apt autoremove
  3.  
    # 查询相关软件包dpkg -l | grep docker# 删除这个包sudo apt remove --purge 对应的包名

如果想安装docker

sudo apt install docker.io

执行以上命令卸载后,打开root的密码登陆

  1.  
    cd /etc/ssh
  2.  
    vim sshd_config #在找到#PermitRootLogin prohibit-password,默认是注释掉的。直接在下面添加一行:PermitRootLogin yes,然后按esc,输入:wq保存并退出。

同时记得更改主机名字为你想要的名字

  1.  
    vim /etc/hostname #更改名字后按esc输入wq保存
  2.  
    hostname master #直接更改主机名字

准备好sealos所必需的一些包,官网为sealos | sealos

  1.  
    $ wget https://sealyun-home.oss-accelerate.aliyuncs.com/images/buildah.linux.amd64 --no-check-certificate -O buildah
  2.  
    $ chmod a x buildah && mv buildah /usr/bin
  3.  
    $ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos-4.0/latest/sealos-amd64 -O sealos && \
  4.  
    chmod x sealos && mv sealos /usr/bin

同时sealos还可以帮助你安装一下好用的小工具,例如helm,openebs等,可以自己在官网看,我们这里需要安装helm,以后会用到。

sealos run labring/helm:v3.8.2 # install helm

正式部署cluster

  1.  
    sealos run labring/kubernetes:v1.24.0 labring/calico:v3.22.1 \
  2.  
    --masters 10.6.5.221 \ #可以有无数个master
  3.  
    --nodes 10.6.5.222,10.6.5.223 -p 123456 #可以有无数个node,记得加上密码

至此,k8s集群部署完成。

2.给k8s部署dashboard,之后的ingress-nginx什么的改动用可视化工具都很方便。

一键就可以安装上了,但是没有连vpn的话,能不能连上网站挺看运气的,可以试试以下这个GitHub - 521xueweihan/GitHub520: 让你“爱”上 GitHub,解决访问时图裂、加载慢的问题。(无需安装)

  1.  
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/1board/v2.6.0/aio/deploy/recommended.yaml
  2.  
    #直接一键部署,当然也可以上以上的网址看看dashboard和k8s版本的对应关系,我的k8s为1.24,所以dashboard安装为v2.6.0

同时这个版本好像需要你自己创建完一个service account后,才能获取token,我随便创建的名字叫admin user

kubectl apply -f dashboard-adminuser.yaml 
  1.  
    apiVersion: v1
  2.  
    kind: ServiceAccount
  3.  
    metadata:
  4.  
    name: admin-user
  5.  
    namespace: kubernetes-dashboard
  6.  
    ---
  7.  
    apiVersion: rbac.authorization.k8s.io/v1
  8.  
    kind: ClusterRoleBinding
  9.  
    metadata:
  10.  
    name: admin-user
  11.  
    roleRef:
  12.  
    apiGroup: rbac.authorization.k8s.io
  13.  
    kind: ClusterRole
  14.  
    name: cluster-admin
  15.  
    subjects:
  16.  
    - kind: ServiceAccount
  17.  
    name: admin-user
  18.  
    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如下

  1.  
    controller:
  2.  
    ingressClassResource:
  3.  
    name: nginx
  4.  
    enabled: true
  5.  
    default: true
  6.  
    controllerValue: "k8s.io/ingress-nginx"
  7.  
    admissionWebhooks:
  8.  
    enabled: false
  9.  
    replicaCount: 1
  10.  
    image:
  11.  
    # registry: k8s.gcr.io
  12.  
    # image: ingress-nginx/controller
  13.  
    # tag: "v1.1.0"
  14.  
    registry: registry.cn-hangzhou.aliyuncs.com
  15.  
    #image: unreachableg/k8s.gcr.io_ingress-nginx_controller
  16.  
    image: 谷歌_containers/nginx-ingress-controller
  17.  
    tag: "v1.1.2"
  18.  
    hostNetwork: true
  19.  
    nodeSelector:
  20.  
    kubernetes.io/hostname: master
  21.  
    affinity:
  22.  
    podAntiAffinity:
  23.  
    requiredDuringSchedulingIgnoredDuringExecution:
  24.  
    - labelSelector:
  25.  
    matchExpressions:
  26.  
    - key: kubernetes.io/hostname
  27.  
    operator: In
  28.  
    values:
  29.  
    - master
  30.  
    topologyKey: kubernetes.io/hostname
  31.  
    tolerations:
  32.  
    - key: node-role.kubernetes.io/master
  33.  
    operator: Exists
  34.  
    effect: NoSchedule
  35.  
    - key: node-role.kubernetes.io/master
  36.  
    operator: Exists
  37.  
    effect: PreferNoSchedule
学新通

同时因为我想把ingress跑在master,而master有taints不允许跑pod,我们先去掉污点,当然要是把ingress跑在非master节点就不需要管这个了

  1.  
    kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule- #去掉污点
  2.  
    kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule #加污点,区别只是-
  3.  
    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相关文件,切换到配置文件在的分支。

  1.  
    cd k8s-falcon #进入
  2.  
    git checkout origin/dev

这时候你就能看到配置文件了,在kubectl apply之前

  1.  
    cat falcon-deploy/README.md #看看需要的镜像,拉取所需的镜像。
  2.  
    因为每个配置文件都指定了运行在哪个节点,在对应节点拉取镜像即可。
  3.  
    nodeSelector:
  4.  
    kubernetes.io/hostname: master

拉取完所有需要的镜像后,就可以正式部署服务了其中mariadb,redis,rabbitmq和oss为底层

casbin和datapool为通用底层服务层,server-core为业务服务层,web和static为最高一层,从底层依次往上配置,当然也不用那么严谨。

  1.  
    cd falcon-deploy/yaml/
  2.  
    kubectl apply -f env/. #首先配置好环境
  3.  
    kubectl apply -f mariadb/.
  4.  
    kubectl apply -f redis/.
  5.  
    kubectl apply -f rabbitmq/.
  6.  
    kubectl apply -f oss/.
  7.  
    kubectl apply -f casbin/.
  8.  
    kubectl apply -f datapool/.
  9.  
    kubectl apply -f web/.
  10.  
    kubectl apply -f static/.
  11.  
    kubectl apply -f server-core/.

其中运行到mariadb时,需要导入数据库,不然没有数据,server-core无法给予正确服务

  1.  
    kubectl cp -n NAMESPACE_name FILE_name POD_name:NEW_FILE_name
  2.  
    source /var/lib/mysql/mysql-falcon-7011.2022-07-08_00-00-02.sql;导入资源

配置结束以上文件后,配置ingress

  1.  
    cd ../..
  2.  
    kubectl apply -f ingress-nginx/.

至此,部署完成,输入master的ip地址即可访问到服务,如图。

学新通

学新通 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhahhe
系列文章
更多 icon
同类精品
更多 icon
继续加载