DevOps搭建(十五)-kubernetes部署项目详细步骤

这篇具有很好参考价值的文章主要介绍了DevOps搭建(十五)-kubernetes部署项目详细步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维文章来源地址https://www.toymoban.com/news/detail-798658.html

1、k8s简介

k8s官网地址

https://kubernetes.io/zh-cn/docs/home/

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

2、安装kuboard

详细步骤可参考官网

https://kuboard.cn/install/install-k8s.html

2.1、环境准备

至少 2 台 2核4G 的服务器。

选择v1.19,因为高版本的已经把docker给舍弃掉了。

https://kuboard.cn/install/history-k8s/install-k8s-1.19.x.html

2.2、修改 hostname

主机执行

# 修改 hostname
hostnamectl set-hostname k8master
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts

从机执行

# 修改 hostname
hostnamectl set-hostname k8sworker
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts

2.3、安装docker及kubelet

主机和从机都要执行

# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.19.5 用于指定 kubenetes 版本,支持所有 1.19.x 版本的安装
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.19.x/install_kubelet.sh | sh -s 1.19.5

2.4、初始化 master 节点

2.4.1、执行初始化脚本

注意只在master节点中执行

# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=192.168.88.126
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.5

2.4.2、检查 master 初始化结果

执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态

# 只在 master 节点执行

# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

查看 master 节点初始化结果

# 查看 master 节点初始化结果
kubectl get nodes -o wide

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

2.5、初始化 worker节点

2.5.1、获得 join命令参数

在 master 节点上执行

# 只在 master 节点执行
kubeadm token create --print-join-command

可获取kubeadm join 命令及参数,如下所示

kubeadm join apiserver.demo:6443 --token grrmtv.3dr3rm4vpqr76y9o     --discovery-token-ca-cert-hash sha256:5d9753dfa125ea514cbc66d31151eff395ac4364fd91675ad0460a9d6795f606

2.5.2、初始化worker

针对所有的 worker 节点执行

# 只在 worker 节点执行
# 替换 x.x.x.x 为 master 节点的内网 IP
export MASTER_IP=192.168.88.126
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=apiserver.demo
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts

# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token grrmtv.3dr3rm4vpqr76y9o     --discovery-token-ca-cert-hash sha256:5d9753dfa125ea514cbc66d31151eff395ac4364fd91675ad0460a9d6795f606

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

2.5.3、检查初始化结果

只在 master 节点执行

# 只在 master 节点执行
kubectl get nodes -o wide

输出结果如下所示:

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

3、安装kuboard图形化管理工具

官方详细步骤地址:

https://kuboard.cn/install/v3/install-in-k8s.html#%E5%AE%89%E8%A3%85

3.1、执行 Kuboard v3 在 K8S 中的安装

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
# 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
# kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

3.2、等待 Kuboard v3 就绪

在master节点上执行以下指令,等待 kuboard 名称空间中所有的 Pod 就绪,如下所示

watch kubectl get pods -n kuboard

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

3.3、访问 Kuboard

http://192.168.88.126:30080/

输入初始用户名和密码,并登录

用户名: admin

密码: Kuboard123

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4、基本操作

4.1、Namespace操作

命名空间是为了隔离各个环境的,比如开发环境叫dev,测试环境叫test等,执行以下语句就能创建一个命名空间

4.1.1、创建命名空间

方式一
kubectl create ns test
方式二

此外还可以通过yml的方式创建,如先创建一个namespace-test.yml,内容如下:

apiVersion: v1
kind: Namespace
metadata:
  name: test
kubectl apply -f namespace-test.yml

4.1.2、删除命名空间

kubectl delete ns test

4.1.3、查看所有命名空间

kubectl get ns

4.2、Pod操作

4.2.1、查看pod

查看所有的pod

注意:最后要加上 -A,如果不加,默认查询default命名空间下的pod

kubectl get pods -A

查看指定命名空间的pod

kubectl get pods -n test

4.2.2、运行一个pod

方式一
kubectl run nginx --image=nginx:latest

也可以指定具体的镜像名和命名空间,

例如我们可以到一个国内的镜像站:https://hub.daocloud.io/

下找到nginx对应具体镜像daocloud.io/library/nginx:1.9.1版本进行安装,并指定安装到test命名空间下。

kubectl run nginx --image=daocloud.io/library/nginx:1.9.1 -n test
方式二

此外还可以通过yml的方式创建,如先创建一个pod-test.yml,内容如下,其中containers下可以有多个镜像信息,也就是说一个pod里可以部署多个docker容器:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-yml
  namespace: test
spec:
  containers:
  - image: daocloud.io/library/nginx:1.9.1
    name: nginx-yml
kubectl apply -f pod-test.yml

查看pod详情可以知道pod内部的ip

kubectl describe pod nginx -n test

得到ip,发现这个ip其实是在步骤2.4.1中POD_SUBNET设定的ip范围。

接着我们可以直接curl 10.100.162.196可看到nginx响应相关信息,但是现在还无法通过外部访问。

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.2.3、查看pod的详细信息

以下命令是查看test命名空间下的nginx的pod信息。

kubectl describe pod nginx -n test

4.2.4、进入pod的容器中查看日志

pod里运行的其实是docker容器,通过以下命令查看容器日志:

kubectl logs -f nginx -n test

4.2.5、进入pod中的容器中

kubectl exec -it nginx -n test -- bash

4.2.4、删除pod

以下命令就是把default命名空间下的nginx这个pod删除掉

kubectl delete pod nginx -n default

4.3、图形化界面操作Pod

点击默认集群

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

如下图,找到对应的命名空间:

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

在进入容器组中,能看到容器的信息:

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.4、Deployment操作

4.4.1、创建一个deployment

方式一
kubectl create deployment deploy-nginx -n test --image=daocloud.io/library/nginx:1.9.1
方式二

通过yml的方式创建管理,更推荐使用这种方式,更方便管理运行。

我们可以到官网摘抄下:

https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/

首先创建一个deployment-nginx.yml文件

vi deployment-nginx.yml

内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: test
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: daocloud.io/library/nginx:1.9.1
        ports:
        - containerPort: 80

最后运行以下脚本

kubectl apply -f deployment-nginx.yml

4.4.2、查看deployment

kubectl get deploy -n test

4.4.2、删除deployment

kubectl delete deployment deploy-nginx

4.5、图形化界面操作Deployment

4.5.1、查看容器组

在新增一个deployment后,会默认创建一个pod,我们可以到图形化界面看到

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

到工作负载里能看到deployment:

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.5.2、查看工作负载

进到详情里能看到各种操作按钮

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.5.3、自动伸缩pod

如下操作,可快速的伸缩指定deployment下的pod数量:

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

再到容器组里看到多了一个pod

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.6、Service操作

4.6.1、创建Service

4.6.1.1、暴露Deployment生成

要想访问deployment,首先我们需要暴露个端口

kubectl expose deployment nginx-deployment --port=8888 --target-port=80 -n test

上面脚本的意思是:将命名空间test里deployment为nginx-deployment对外暴露端口,端口为888,映射到pod容器里的nginx端口80。

上面方式只能在服务器内部访问,在浏览器是无法访问的,如果想外部也能访问,需要加type=NodePort参数:

kubectl expose deployment nginx-deployment --port=8888 --target-port=80 -n test --type=NodePort

暴露了之后,生成对应的service

kubectl get service -n test

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

图形化界面也能看到

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.6.1.2、通过yml文件创建

创建一个yml文件

vi deployment-service.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: test
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: daocloud.io/library/nginx:1.9.1
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  namespace: test
  #注意:这里要和Deployment的名称一致
  name: nginx-deployment
  labels:
    app: nginx-deployment
spec:
  selector:
    #注意:这里要和Deployment的app名称一致
    app: nginx
  ports:
  #Service的端口
  - port: 8888
    #容器内的端口
    targetPort: 80
  type: NodePort

执行yml文件

kubectl apply -f deployment-service.yml

执行后可以在图形化界面看到服务了

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.6.2、查看Service

kubectl get service -n test

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

可以看到Service的ip和端口,请求ip:port,返回nginx信息

curl http://10.96.68.96:8888/

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

浏览器通过主机ip+外部端口访问:

http://192.168.88.126:30833/

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.7、Ingress操作

4.7.1、安装Ingress

如下图,在集群管理->IngressClass菜单进入安装页面

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

点击安装弹出如下界面,选择使用私有镜像仓库,点击确定按钮

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

安装完之后,容器组进入 Succeeded 或 Running 状态之后,IngressNginxController 就可以正常工作。

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.7.2、通过yml创建Ingress

在4.6.1.2步骤中的yml文件追加ingress脚本

vi deployment-nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: test
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: daocloud.io/library/nginx:1.9.1
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  namespace: test
  #注意:这里要和Deployment的名称一致
  name: nginx-deployment
  labels:
    app: nginx-deployment
spec:
  selector:
    #注意:这里要和Deployment的app名称一致
    app: nginx
  ports:
  #Service的端口
  - port: 8888
    #容器内的端口
    targetPort: 80
  type: NodePort
---
#apiVersion值必须写成networking.k8s.io/v1
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: test
  name: nginx-ingress
spec:
  ingressClassName: ingress
  rules:
  #映射的域名
  - host: abc.def.com
    http:
      paths:
      #访问什么样的路径
      - path: /
        #匹配方式,前缀匹配,即匹配上path配置的斜杠就可以
        pathType: Prefix
        backend:
        #自定用哪个service
          service:
            name: nginx-deployment
            port:
              #映射的端口
              number: 8888

执行脚本

kubectl apply -f deployment-nginx.yml

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

4.7.3、配置域名访问

C:\Windows\System32\drivers\etc

192.168.88.126 abc.def.com

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

DevOps搭建(十五)-kubernetes部署项目详细步骤,devops,kubernetes,运维

到了这里,关于DevOps搭建(十五)-kubernetes部署项目详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot+vue真实项目部署详细步骤

    下面是实际项目部署完整详细步骤,仅供参考。 首先需要以下文件: 后端包(关联交易需要: toplink-admin.jar后台管理包 和 toplink-rule-server.jar规则引擎服务包 )Maven-clean-package 后端配置文件,比如application.ym等,用于后面把配置文件提取到和jar包同一路径进行修改 sql文件 前端

    2024年02月14日
    浏览(46)
  • 【环境搭建】使用IDEA创建快速搭建SpringBoot项目详细步骤

    环境准备: 开发工具IDE:IntelliJ IDEA 2022.2.4 (Ultimate Edition) 开发环境JDK:Oracle OpenJDK Version 1.8.0_162 构建工具MAVEN: Maven 3.6.3 (1)创建spring initializr工程 通过IntelliJ IDEA工具创建工程时,通过file-new-project后,在弹出的界面中选择spring initializr选项(社区版无此选项)。然后去勾选相关

    2024年02月03日
    浏览(47)
  • 快速搭建一个简单的SpringBoot项目-详细步骤

    前言 本文章仅供大家参考,如果对大家有起到帮助的话可以点赞支持一下~ 主要发布是为了本人以后能方便的搭建一个SpringBoot项目的框架!!! 源码路径在文章最下方! 1.选择Spring Initializr 2.点击下一步 3.修改jdk的版本,再点击下一步 注意! 4.选中Spring Web,再下一步 5.给项目

    2024年02月10日
    浏览(43)
  • nginx: 部署前端项目的详细步骤(vue项目build打包+nginx部署)

    目录 第一章 前言 第二章 准备工作 2.1 项目打包理解 2.1.1 打包命令 2.1.2 理解npm run serve/dev 和 npm run build命令 2.2 nginx参数配置理解 2.2.1 nginx常用基本命令 2.2.2 默认配置 2.2.3 搭建不同网站的站点 2.2.4 禁止访问的目录以及一键申请SSL证书验证目录相关设置 2.2.5 根据文件类型设置

    2024年02月04日
    浏览(59)
  • 一个 tomcat 下如何部署多个项目?附详细步骤

    一个tomcat下如何部署多个项目?Linux跟windows系统下的步骤都差不多,以下linux系统下部署为例。windows系统下部署同理。 清楚tomcat目录结构的应该都知道,项目包是放在webapps目录下的,那能否在同一个tomcat的webapps目录下运行多个不同项目呢? 答案是可以的。 1、将多个项目包

    2024年02月07日
    浏览(39)
  • DevOps搭建(四)-GitLab安装细步骤

    在这里我们用docker安装 进入该目录 输入以下内容保存 查看启动日志 稍等片刻,如果没看到错误日志,证明已经正常启动。 开放GitLab对应的端口 重启防火墙 GitLab的默认登录账号为root,密码需要进入docker容器中获取。 6.1、获取root账号登录密码 进入gitlab容器: 获取密码 复制

    2024年02月04日
    浏览(41)
  • 云服务器下如何部署Django项目详细操作步骤

    前期本人完成了“编写你的第一个 Django 应用程序”,有了一个简单的项目代码,在本地window系统自测没问题了,接下来就想办法部署到服务器上,可以通过公网访问我们的Django项目。将开发机器上运行的开发版软件实际安装到服务器上进行长期运行,这是使用 Django 框架进行

    2024年02月09日
    浏览(52)
  • 详细步骤记录:持续集成Jenkins自动化部署一个Maven项目

    提示:本教程基于CentOS Linux 7系统下进行 1. 下载安装jdk11 官网下载地址:https://www.oracle.com/cn/java/technologies/javase/jdk11-archive-downloads.html 本文档教程选择的是jdk-11.0.20_linux-x64_bin.tar.gz 解压jdk-11.0.20_linux-x64_bin.tar.gz命令为: 2. 下载Jenkins的war包 官网下载地址:https://mirrors.tuna.tsing

    2024年02月04日
    浏览(59)
  • 【kubernetes】使用KubeSphere devops部署我的微服务系统

    入门使用KubeSphere的Devops功能部署\\\"我的微服务系统\\\" (内容学习于尚硅谷云原生课程) kubesphere devops官方文档: https://v3-1.docs.kubesphere.io/zh/docs/devops-user-guide/how-to-use/create-a-pipeline-using-jenkinsfile/ 暂时部署这4个服务,auth服务、crm服务、gateway服务、前端ui服务 Dockerfile 前端kwspher

    2024年02月10日
    浏览(38)
  • 尚医通day01-【项目环境搭建和医院设置详细步骤】(内附源码)

    项目名称: 尚医通预约挂号统一平台 项目原型: https://www.114yygh.com 北京市预约挂号统一平台 项目技术栈: 前后端分离 后端技术:SpringBoot + SpringCloud + MyBatisPlus + MySQL + MongoDB + Redis + RabbitMQ + Docker + EasyExcel + API远程接口调用 + SDK远程接口调用 + 对称加密和非对称加密 + 数字签

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包