前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从无到有基于腾讯云TKE部署Kubernetes全流程(三)

从无到有基于腾讯云TKE部署Kubernetes全流程(三)

原创
作者头像
蒋经纬
修改于 2020-06-28 07:52:03
修改于 2020-06-28 07:52:03
89500
代码可运行
举报
文章被收录于专栏:TKE学习分享TKE学习分享
运行总次数:0
代码可运行

问题来了:对于一些业务需要一些持久化的存储,我们一般采用什么方案呢?

硬盘、文件存储对象存储

硬盘

只能实现一对一挂载,因为硬盘只支持一次挂载,通过硬盘创建的PVC为RWO,单机读写。

文件存储

支持 ReadWriteMany ,PVC类型为多机读写。

对象存储

支持 ReadWriteMany ,PVC类型为多机读写。

这里贴一个各个存储的比较图

这里我们就通过腾讯云COS演示,多个服务需要共享一个内容文件如何实现。

1、首先创建COS存储桶,并拿到访问相关;

2、向TKE集群添加COS访问的Secret;

注意写错了,不能在控制台删,可以修改yaml文件,但是变量值是base64转码后的值,可以命令行删除sercret,重建即可。

3、TKE集群中添加PV;

注意如果提示不能使用CFS、COS联系客服,开启即可。

4、TKE集群通过该PV添加PVC;

5、创建Deployment,关联该PVC;

到这一步难道就结束了吗? 最关键的才刚刚开始,nginx访问报错 403!

问题描述: Pod 正常启动毫无问题,但是访问出现403,日志中也报出403。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2020/06/28 03:11:05 [error] 28#28: *1 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied), client: 10.0.0.7, server: localhost, request: "GET / HTTP/1.1", host: "172.16.0.34"

发现 nginx,conf 中 user 为nginx,而经过COS挂载的权限为root,经过测试修改文件所属关系没有作用,我们换一个思路,让nginx以root启动,并重启nginx服务。

这里我们直接通过命令行修改该deployment文件即可,由于在控制台修改个人也得修改yaml文件,不方便,所以这里我贴一份成功的deployment文件给大家参考。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    k8s-app: nginx-deploy
    qcloud-app: nginx-deploy
  name: nginx-deploy
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: nginx-deploy
      qcloud-app: nginx-deploy
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s-app: nginx-deploy
        qcloud-app: nginx-deploy
    spec:
      containers:
      - image: nginx
        imagePullPolicy: Always
        lifecycle:
          postStart:
            exec:
              command:
              - /bin/sh
              - -c
              - sed -i 's#nginx;#root;#g'  /etc/nginx/nginx.conf;
              - nginx
              - -s
              - reload
        name: nginx-deploy-pod
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: cos
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: qcloudregistrykey
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - name: cos
        persistentVolumeClaim:
          claimName: cq-cos-pvc

核心部分就在与 podStart,执行了一串命令,更改了nginx.conf的配置文件,并使得nginx重启。

成功画面
成功画面

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从无到有基于腾讯云TKE部署Kubernetes全流程(一)
这里我们希望的是,提供一个腾讯云TKE中部署整个基础环境,以及对部分服务的一个示例。
蒋经纬
2020/06/22
2.1K0
TKE使用自建NFS持久化存储
使用TKE的过程中,我们需要把pod一些文件持久化存储到外部,这边我们会用到nfs存储,其实在腾讯云上有CFS服务,可以用CFS作为文件存储服务器,TKE也支持将文件挂载到CFS上存储。但是如果你想自己管理nfs服务器,这边也可以通过自建nfs服务器来作为tke集群中pod存储。下面我们来说一下如何将pod的文件挂载到自建的nfs服务器来进行存储。
聂伟星
2020/09/17
2.5K2
TKE使用nfs文件系统
本文主要实践TKE集群使用nfs文件系统,包括使用cfs-csi(新创建实例,共享新实例),静态nfs挂载,已有实例共享挂载
williamji
2024/07/31
1820
1.20版本TKE集群使用nfs-subdir-external-provisioner挂载nfs
使用tke的时候,很多时候会用到共享存储,tke默认支持的共享存储有cos和cfs(类似于nfs),一般使用cfs的比较多,但是现在tke的cfs组件现在还不支持共享cfs实例,也就是说你自动创建pvc,每个pvc就会用到一个共享文件系统,这样比较浪费资源,其实我们可以在tke上使用自建nfs来进行存储,k8s的1.20之前版本都是推荐使用K8S NFS Provisioner,但是现在这个组件不维护了,并且不兼容1.20以后版本的k8s集群。
聂伟星
2022/03/25
1.5K0
TKE操作笔记03
StorageClass 描述存储的类型,集群管理员可以为集群定义不同的存储类别。腾讯云 TKE 服务默认提供块存储类型的 StorageClass,通过 StorageClass 配合 PersistentVolumeClaim 可以动态创建需要的存储资源。
聂伟星
2020/06/03
8180
TKE - PV,PVC,StoragClass配置使用体验(上)
点击并展开存储,点击StorageClass,进入 StorageClass 信息页面,点击新建。
虚心学习
2019/12/25
6590
TKE操作指南 - PV,PVC,StoragClass配置使用(十三)
PersistentVolume(PV):集群内的存储资源,例如节点是集群的资源。PV 独立于 Pod 的生命周期,根据不同的 StorageClass 类型创建不同类型的 PV。 PersistentVolumeClaim(PVC):集群内的存储请求。例如,PV 是 Pod 使用节点资源,PVC 则声明使用 PV 资源。当 PV 资源不足时,PVC 也可以动态创建 PV。
亮哥说TKE
2019/08/12
2.1K0
TKE集群设置容器coredump持久化
业务跑在容器上,当业务进程发生异常退出时候,业务日志无法定位到具体原因,需要结合coredump文件进一步分析,下面我们来介绍下如何在tke上持久化容器的coredump文件。 现在业务在tke部署容器,通常有2种方式,一直是部署在普通cvm节点,一种是超级节点上,下面我们分别说明下在这2种节点的pod如何持久化coredump文件。
聂伟星
2023/11/24
7140
TKE容器服务部署mysql 5.7以上版本镜像,/var/lib/mysql挂载pvc后无法启动
在体验腾讯云TKE服务,偶然间进行部署个官方 Docker Hub镜像里的mysql 5.7以上镜像,并配置pvc进行数据持久化存储,将对应挂载点绑定在/var/lib/mysql路径,但无法启动
虚心学习
2019/12/26
3.1K0
如何给tke集群的pod设置时区
腾讯云容器服务(TKE)集群中容器系统时间默认为 UTC 协调世界时间 (Universal Time Coordinated),与节点本地所属时区 CST (上海时间)相差8个小时。在容器使用过程中,当需要获取系统时间用于日志记录、数据库存储等相关操作时,容器内时区不一致问题将会带来一系列困扰。
聂伟星
2022/04/02
2.3K4
TKE使用自带nginx-ingress组件实现tcp/udp转发
在TKE内将服务直接通过端口暴露到外网,可以使用CLB类型service,或者nginx-ingress方式实现,最近处理问题时遇到用户需要将ingress跟service同时使用nginx-ingress方式暴露,不想额外使用CLB,这里就涉及到通过nginx-ingress组件暴露四层TCP/udp的问题
程哲
2022/03/06
2.1K0
玩转tke的混合网络模式
tke上腾讯云有提供2中网络模式,分别是Global Router(下面我们简称GR)和vpc-cni,这2种网络模式的优劣,如何选型可以参考https://cloud.tencent.com/document/product/457/44966,那么什么是tke的混合网络模式呢,首先我们看看tke的网络模式有哪几种。
聂伟星
2021/02/05
1.8K0
Kubernetes(TKE集群)部署Nacos
官网文档:https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html
chen1900s
2022/02/26
3.8K0
tke上nginx-ingress实现grpc转发
gRPC是Google开源的一个高性能RPC通信框架,通过Protocol Buffers作为其IDL,可以在不同语言开发的平台上使用,同时基于HTTP/2协议实现,继而提供了连接多路复用、头部压缩、流控等特性,极大地提高了客户端与服务端的通信效率。
聂伟星
2022/04/01
2K3
Kubernetes在pod中配置hosts解析域名
当 DNS 配置以及其它选项不合理的时候,通过向 Pod 的 /etc/hosts 文件中添加条目,可以在 Pod 级别覆盖对主机名的解析。在 1.7 版本后,用户可以通过 PodSpec 的 HostAliases 字段来添加这些自定义的条目。
聂伟星
2020/09/11
7.5K0
云原生监控数据查询地址如何暴露出公网
prometheus现在是主流的监控k8s方案,各大云厂商也都有托管的k8s服务,为了更好的对托管k8s集群监控,也推出了托管的prometheus监控服务,腾讯云上就推出了腾讯云云原生监控服务(Tencent Prometheus Service,TPS)下面简称TPS,TPS
聂伟星
2021/08/31
2K1
TKE操作指南 - wordpress 容器配置项的使用(十二)
配置用来规定一些程序在启动时读入设定,提供了一种修改程序设置的手段, 针对不同的对象可以使用不同的配置。
亮哥说TKE
2019/08/07
1.4K1
Kubernetes 的hostPort 与 hostNetwork使用
访问测试 如下,通过PODIP+containerPort 和 node节点IP+hostPort 都可以正常访问到
chen1900s
2022/05/20
8.8K0
自建dns实现tke集群apiserver域名内网自动解析
腾讯云tke集群访问apiserver地址都是域名来访问的,支持内网和公网访问apiserver,如果是公网访问会创建一个公网的类型的clb,然后将域名自动解析到clb的vip上。如果是内网访问会创建一个内网clb类型的service,default命名空间下的kube-user,但是内网不会做域名的自动解析,所以通常需要配置在客户端配置hosts解析才能访问集群。客户端机器较多的时候,需要每一台配置host解析就比较麻烦,能否实现tke集群apiserver域名做内网的自动解析?
聂伟星
2021/10/11
4.1K0
TKE 实践亲和性与反亲和性
通常情况下在Kubernetes 集群中部署一个Pod, 默认调度器将会自动进行合理的调度(例如, 将Pod分散到节点上, 根据节点上的资源情况进行分配), 但是有时候我们需要更加细粒度的控制pod的调度. 比如一组pod需要最终调度到拥有SSD/GPU的硬盘的机器上,或者将两个不同的服务(服务间直接通信比较频繁)的pod 调度到同样的节点上 (比如gitlab.这里就需要 Kubernetes里面的亲和性来解决,亲和性分为2类: nodeAffinity 和 podAffinity.
朱瑞卿
2020/09/08
2.5K0
TKE 实践亲和性与反亲和性
推荐阅读
相关推荐
从无到有基于腾讯云TKE部署Kubernetes全流程(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验