完整系列k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装1k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装2k8s系列(2)-Servicek8s系列(3)-StatefulSet 的MongoDB实战k8s系列(4)-MongoDB数据持久化k8s系列(5)-Configmap和Secretk8s系列(6)-Helmk8s系列(7)-命名空间k8s系列(8)-Ingressk8s 系列(9)-容忍、污点、亲和介绍在腾讯云上新建集群,以及负载均衡,并通过Ingress访问的示意图如下:图片一. secret创建图片apiVersion: v1kind: Secretmetadata
Kubernetes中概念的简要概述 Cluster : 集群是指由Kubernetes使用一系列的物理机、虚拟机和其他基础资源来运行你的应用程序。 Pod : k8s的最小调度单元,一个pod 可以包含多个容器,k8s无法直接操作容器,只能操作pod Label : 一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可识别的属性 window下搭建k8s环境 搭建k8s开发环境有三种,一种是通过docker desktop + Minikube 来直接在你的电脑上搭建,这种搭建方式存在的问题比较多,很多功能不支持,不建议使用。 另外一种方式是通过Docker Desktop安装k8s,这种k8s是单机版的,master 和node 是同一个节点也就是本机,这种方式安装的k8s基本上能满足我们的学习需求,初期学习阶段可以使用这种安装方式 // 执行脚本安装K8S相关镜像(确认k8s-for-docker-desktop文件夹下的images中的k8s和本地安装的docker中需要的k8s版本保持一致) .
一、k8s的历史演变 k8s的演变过程:首先从传统的服务-->虚拟机部署-->容器部署-->k8s。 k8s的由来,归根结底是容器的由来,搞清楚容器的来历,k8s是在容器的基础上,方便容器管理、维护,包括声明式配置和自动化。 Kubernetes(简称 K8s,其中8代指中间的8个字符),是一个全新的基于容器技术的分布式架构方案。 K8S 就是以 pod 为单位进行编排操作。 同时,K8S 还要和其它相关软件配合,来完成联网、存储、安全等功能。 3、容器和k8s的关系 K8S 和 Docker 们不是替代关系,而是配合关系。
latestlatest: Pulling from library/busyboxDigest: sha256:c3839dd800b9eb7603340509769c43e146a74c63dca3045a8e7dc8ee07e53966Status complete 7e1bc321f421: Pull complete bddd54b9c549: Pull complete 4eaae1e844ac: Pull complete 5196e1e87d8f MYSQL_SHELL_VERSION=8.0.36-1.el8]清理未使用的镜像docker image prune命令可以清理所有未使用的镜像,释放空间。 Dockerfile 是一个文本文件,包含了一系列的指令和参数,Docker 会根据这些指令一步步构建镜像。 docker run -d -p 8081:80 sre-nginx9f60ba3749abe5463b3c3296c8a19d5c8f5c3fa49be10c711aeddf7f69b8ba88docker
Swarm:Docker自己的容器编排工具 Mesos:Apache的一个资源统一管控的工具,需要和Marathon结合使用 Kubernetes:Google开源的的容器编排工具 kubernetes(k8s 服务可以通过自动发现的形式找到它所依赖的服务 负载均衡:如果一个服务起动了多个容器,能够自动实现请求的负载均衡 版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本 存储编排:可以根据容器自身的需求自动创建存储卷 一个k8s pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-6d8c4cb4d -575sw 1/1 Running 1 (5h29m ago) 23h coredns-6d8c4cb4d-p4nv8 1/1 Running 5h29m ago) 23h kube-controller-manager-master 1/1 Running 2 (5h29m ago) 23h kube-proxy-g8rnm
helm 介绍 Helm 是 Kubernetes 的包管理器,Helm 由客户端组件 helm 和服务端组件 Tiller 组成, 能够将一组K8S资源打包统一管理。 Helm 三大核心概念: chart:Helm的打包格式叫做chart,所谓chart就是一系列文件, 它描述了一组相关的 k8s 集群资源 release:使用 helm install 命令在 Kubernetes #对应自己k8s版本号 wget https://get.helm.sh/helm-v3.6.1-linux-amd64.tar.gz tar xf helm-v3.8.1-linux-amd64. templates下的文件从命名我们就能知道是k8s的配置文件。我们按照创建容器控制器的经验就能生成这些文件。values.yaml 提供了应用在安装时的默认参数。 使用指令: helm install test test.tgz 安装helm包,会在你的k8s集群里面生成对应的pod等程序。
k8s 逐渐已经作为一个程序员不得不学的技术,尤其是做云原生的兄弟们,若你会,那么还是挺难的 学习 k8s ,实践尤为重要,如果身边有自己公司就是做云的,那么云服务器倒是不用担心,若不是,我们可以在网上购买各大云厂商的服务器 ,用于学习用于精进自己 如下是 k8s 官网,最好的资料莫过于官网了 点击进入 k8s 官网 现状 公司一直在发展,各种设置也在推陈出新,现在就有一个很明显的对比 从最开是的 IT 基础设置主机化
KubeSphere 介绍 KubeSphere是k8s控制台,ubeSphere 目前提供了工作负载管理、微服务治理、DevOps 工程、Source to Image、多租户管理、多维度监控、日志查询与收集 利用KubeSphere我们可以根据我们之前学习的 Jenkins docker k8s 搭建一套完整的私有云系统,极大的减少运维以及开发的工作量。 kubeSphere 安装 为了简化安装,我们这里使用的是KubeKey,KubeKey安装k8s的最低配置要求是2核4G,低于这个配置使用KubeKey会安装失败。 /kk init os 接下来我们生成一个配置文件来安装k8s和kubeSphere . 镜像制作、镜像安全、推送仓库、版本发布、到定时构建的端到端流水线设置 4)监控 5)应用管理与编排 使用开源的OpenPitrix提供应用商店和应用仓库服务,提供应用全生命周期管理功能 结语 k8s
获取当前进程的 PID pid = os.Getpid() fmt.Printf("PID in new namespace: %d\n", pid)} syscall 相关的知识可以到五分钟学GO
-4680-a2a0-b5868b0b0ee8 8Gi RWO standard 18mdatadir-my-mongo-mongodb-1 Bound pvc-fedbe73d-ad3f-4d97-a4ba-12127482e3ca 8Gi RWO standard 18m[root@VM-79 -4680-a2a0-b5868b0b0ee8 8Gi RWO Delete Bound default/datadir-my-mongo-mongodb -0 standard 18mpvc-fedbe73d-ad3f-4d97-a4ba-12127482e3ca 8Gi RWO RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGEstandard (default) k8s.io
完整系列k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装1k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装2k8s系列(2)-Servicek8s系列(3)-StatefulSet 的MongoDB实战k8s系列(4)-MongoDB数据持久化k8s系列(5)-Configmap和Secretk8s系列(6)-Helmk8s系列(7)-命名空间k8s系列(8)-Ingressk8s 系列(9)-容忍、污点、亲和特性Service 通过 label 关联对应的 PodServcie 生命周期不跟 Pod 绑定,不会因为 Pod 重创改变 IP提供了负载均衡功能,自动转发流量到不同 Pod 集群内访问ClusterIPapiVersion: v1kind: Servicemetadata: name: test-k8sspec: selector: app: test-k8s 找到了service,service做负载均衡图片LoadBalancer需要负载均衡器(通常都需要云服务商提供,裸机可以安装 METALLB 测试)会额外生成一个 IP 对外服务K8S 支持的负载均衡器
请出门左转到 https://xie.infoq.cn/article/346a3848bdb6d2bd8cd7e205e 第二步:访问nginx 这两个nginx都启动完毕了,我们使用浏览器访问看看 -" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0" "-" 200 - f1dd0f63dfe8eacf5146796a250ecb0c "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0" "-" 200 - f4f682eddd8d5aa012aa7550a2b32dd2
vagrant是开源的虚拟机技术,相对于 vmware 而言更轻量级,操作更简便移植性更强,如果我们需要学习k8s或者搭建一些集群的话建议使用 Virtualbox+Vagrant。 掌握 Vagrant技术对我们后续学习k8s会有很大的帮助 环境准备 vagrant 下载地址:https://www.vagrantup.com virtualbox 下载地址:https://www.virtualbox.org
在接下来的时间,我将开一个很长的篇章来学习每个SRE与开发人员都必须熟悉的技术K8S,让我们一起学习一起进步,一起喝着咖啡搞SRE吧。 26.1.0 API version: 1.45 (minimum version 1.24) Go version: go1.21.9 Git commit: c8af8eb Version: 6.5.0-28-generic Operating System: Ubuntu 22.04.2 LTS OSType: linux Architecture: x86_64 CPUs: 8 Total Memory: 7.712GiB Name: adming-virtual-machine ID: 2ce4d809-8b07-48b5-a81b-1206c1acf500 Docker Root library/busybox7b2699543f22: Pull complete Digest: sha256:c3839dd800b9eb7603340509769c43e146a74c63dca3045a8e7dc8ee07e53966Status
Dockerfile 是 Docker 镜像构建的核心,它通过一系列指令自动化地定义了镜像的构建过程。下面我们将详细介绍 Dockerfile 的制作流程,并通过案例展示其应用。 Dockerfile 简介 Dockerfile 是构建 Docker 镜像的核心脚本,它包含了一系列的指令,这些指令定义了镜像的构建过程。 0.3s => => writing image sha256:d72611e47ccde8d858882cdc2a23bf166c8a96fcdf2973e273495e5ca6 TAG IMAGE ID CREATED SIZEdockerfile-sre-nginx latest d72611e47ccd 8
写在前面 博文内容为 K8s 中常用的 API 资源简单总结 适合对 K8s 有基本认知,温习,面试准备的小伙伴 内容涉及:API 资源组成 ,SSA 和CSA 资源操作方式,以及资源类别工作负载,服务 ,配置和存储,认证,鉴权,策略,扩展,集群 等简单描述 整理这部分笔记,在找 K8s干扰预算相关笔记的时候,突然看到那篇笔记末尾之前摘的一句话; "我曾以为总有一天,我能够改变一些什么,可当我看见她渐渐淹没在人海的时候 Kubernetes API概述 官方文档位置: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/ 在 k8s 体系中 API 资源组成 在 K8s中 一个常见的 API 对象由下面四部分构成: 资源种类和API版本ResourceKind、Version: 这是关于 API 资源的类型和版本说明 apiVersion 通过上面的组成,可以很直观的体会到 K8s声明式的操作风格,告诉系统我们需要什么,而不是告诉系统你需要做什么,使用kubectl apply 创建指定配置文件所定义的所有对象。
在上一篇文章中,我们部署了Harbor私有镜像仓库,集群自建DNS服务以及ETCD集群服务,这些服务本身并不属于K8S集群,只是K8S集群提供服务时需要用到的基础服务。 在本文中,我们将正式开始部署K8S集群,首先要部署K8S集群中的Master节点相关的各种组件,实验集群的架构图参见 搭建K8S集群之Harbor仓库、DNS和ETCD部署。 下载k8s包并解压: [root@k8s7-21 src]# pwd /opt/src [root@k8s7-21 src]# wget https://dl.k8s.io/v1.15.2/kubernetes-server-linux-amd64 [root@k8s7-21 cert]# scp k8s7-200:/opt/certs/ca-key.pem ./ [root@k8s7-21 cert]# scp k8s7-200:/opt/certs health": "true"} etcd-2 Healthy {"health": "true"} 我们可以看到,使用kubectl命令检查集群状态为健康,我们的K8S
完整系列k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装1k8s系列(1)-腾讯云CVM手动部署K8S_Dashboard安装2k8s系列(2)-Servicek8s系列(3)-StatefulSet 的MongoDB实战k8s系列(4)-MongoDB数据持久化k8s系列(5)-Configmap和Secretk8s系列(6)-Helmk8s系列(7)-命名空间k8s系列(8)-Ingressk8s 系列(9)-容忍、污点、亲和一.
K8s 持久化存储经历了从 in-tree Volume 到 CSI Plugin(out-of-tree) 的迁移,一方面是为了将 K8s 核心主干代码与 Volume 相关代码解耦,便于更好的维护; 多组件协同 为实现具有高扩展性、out-of-tree 的持久卷管理能力,在 K8s CSI 实现中,相关协同的组件有: 组件介绍 kube-controller-manager:K8s 资源控制器, 可以看到,K8s 以 CSI Plugin(out-of-tree) 插件方式开放存储能力,一方面是为了将 K8s 核心主干代码与 Volume 相关代码解耦,便于更好的维护;另一方面在遵从 CSI 规范接口下 相关资料 CSI 规范[4] Kubernetes 源码[5] kubernetes-csi 源码[6] kubernetes-sig-storage 源码[7] K8s CSI 概念[8] K8s CSI K8s CSI 概念: 【https://blog.csdn.net/zhonglinzhang/article/details/89532389】 [9] K8s CSI 介绍: 【https://
导读 k8s的文章一共写了十八篇,是一个比较全面的学习日志。 不知道你们有没有学会,反正我是学废了!!! 另外,如果我在哪个知识点没理解好,欢迎指正。 k8s新增节点 k8s重器之Service k8s之DNS服务器搭建 k8s之HTTP请求负载分发 k8s之API Server认证 k8s之RBAC授权模式 k8s之ServiceAccount k8s 之Secret k8s之Pod安全策略 k8s之共享存储概述以及演示 k8s之PV、PVC、StorageClass详解 k8s之集群管理 结尾 广东冬天已至,天气微凉,注意保暖! 往期推荐 k8s之RBAC授权模式 k8s之HTTP请求负载分发 k8s之DNS服务器搭建 k8s之共享存储及演示 下期见 Liusy01 一个分享Java后端学习日志的公众号 欢迎大家点个在看 分享至朋友圈