发布于 2018-04-12 13:45 更新于 2018-09-01 00:11
发布于 2018-04-18 12:51 更新于 2018-09-01 00:11
在项目构建的时候,我们经常会希望能够将git提交的分支信息和提交号(commitid)以及当前版本发布的tag信息作为版本号自动构建到程序里面,以便后续能够快速定位所运行的程序所定影的git源码的版本,从而快速发现和定位问题。
这一系列文章是学习K8S过程的笔记,使用的是kubeadm来部署。 参考https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/。
欢迎阅读 MAD Skills 系列 之 Gradle 与 AGP 构建 API 的第三篇文章。在上一篇文章《Gradle 与 AGP 构建 API: 如何编写插件》中,您学习了如何编写您自己的插件,以及如何使用 Variants API。
master节点组件: kubectl,kube-apiserver,kube-controller-manager,kube-scheduler
升级前准备 master节点组件: kubectl,kube-apiserver,kube-controller-manager,kube-scheduler
kubeadm 默认 ca 证书10年,k8s 证书是 1 年,虽然续期方便,但是为了一劳永逸尝试编译修改 kubeadm 默认证书有效期,并更新现有集群。
在RDBMS中,无论那种数据库,都提供了SQL剖析工具,用来解决SQL效率低下的问题。在MongoDB中,也有相应的策略来实现剖析。MongoDB提供了db.collection.explain()方法, cursor.explain()方法,和explain命令去返回查询计划信息和查询计划的执行统计信息。这为我们诊断查询提供了极大的便利,本文主要描述db.collection.explain()的相关用法。 一、db.collection.explain()简介 支持下列操作返回查询计划
本期文章是K8s第3篇,主要是实战Kubectl创建Deployment部署应用。通过本期文章:我们将学习创建在 Kubernetes 集群上运行应用程序的 Deployment 所需的最常见的 Kubectl 命令。
最近我们都在讨论build系统,我们看了一些技巧可以让你的Maven build更快。结论和反映都势不可挡。由于我们提供的技巧,更多的人都很高兴能加快他们完成自己的项目。现在,让我们看一下怎么处理gradle编译项目。编译的项目一般都是标准编译的,也都是独一无二的。几乎所有的项目都增加了其自身的复杂性。所有的东西都不同但是有一个东西是相同的:编译会占用你的时间,加快编译会影响你的开发效率,让你的项目工作更加顺畅。
要学习Kubernetes技术,先决条件是得有一个实验环境,虽然在之前的文章中给大家介绍过如何安装部署一个Kubernetes(具体可参考<<如何部署一个Kubernetes集群>>),但是这篇文章是基于Linux虚拟机安装的,所需要的资源环境还是相对复杂。而我们在日常学习Kubernetes的过程中,其实是更希望在开发电脑上直接部署一个简单的Kubernetes环境,这样学习起来会更加方便。今天的内容就给大家介绍下如何在Mac开发电脑上安装一个基于MiniKube的Kubernetes学习环境!
Minikube简介 官网:https://minikube.sigs.k8s.io/ minikube是运行kubernetes集群最简单、最快捷的途径。 对于测试kubernets和本地开发应用都非常有用。 📷 准备工作 安装一台Centos7虚拟机,开启虚拟机的CPU虚拟化。 📷 安装minikube 下载地址: https://storage.googleapis.com/minikube/releases/latest/minikube-1.3.1.rpm rp
本文告诉大家如何转换语义版本号,那么什么是语义版本号,语义版本号(semantic version)就是版本号带 alpha 等的版本号
忙了一个月,经历了一段连续工作周末午休的奋斗时光,终于保障了产品的按时发版,也正式的松了口气。睡了几天,让疲劳的身体得以恢复,准备下一次战斗。
启动 minikube addons enable metrics-server 之后查看 metrics-server pod 会有如下错误
client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。
发布于 2018-08-05 13:22 更新于 2018-08-18 03:04
[root@master ~]# kubectl get nodes 查看集群节点 NAME STATUS AGE node1 Ready 25m node2 Ready 19m [root@master ~]# kubectl version 查看版本 Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} [root@master ~]# kubectl run nginx --image=docker.io/nginx --replicas=1 --port=9000 deployment "nginx" created [root@master ~]# kubectl get deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE nginx 1 1 1 0 15s [root@master ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-2187705812-8r0h4 1/1 Running 0 1h [root@master ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE nginx-2187705812-8r0h4 1/1 Running 0 1h 10.255.4.2 node1 想要删除一个容器的时候:
kubeadmin 提供 kubeadmin init 和 kubeadmin join,用于快速部署 k8s 集群
索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。
前者适合新手,后者适合老手**(方便大家查找,从而过滤掉某些步骤,节约时间成本)** 所以大家按需查看哟。
如果你希望做一个 NuGet 工具包,那么这个包一定不能作为依赖传递给下一个包。典型的例子,做一个生成版本号的工具 NuGet 包,或者做一个代码分析器。
Kubernetes在2019年9月18日发布了年度的第三个版本1.16,这篇文章介绍一下如何使用Easypack的Ansible脚本方式在CentOS7上完成Kubernetes的一键安装。
梳理常用的K8s命令 功能说明 命令 node 查看服务器节点 kubectl get nodes 查看服务器节点详情 kubectl get nodes -o wide 节点打标签 kubectl label nodes <节点名称> labelName=<标签名称> 查看节点标签 kubectl get node --show-labels 删除节点标签 kubectl label node <节点名称> labelName- pod 查看pod节点 kubectl get pod 查看pod节
国内直接安装Kubectl会失败主要是访问了 google 的地址,但是可以通过Github上来找到可以进行使用编译好的二进制文件
Kubernetes简称K8S,是一个开源的分布式的容器编排引擎,用来对容器化应用进行自动化部署和管理。
Kubernetes除了提供了基于CA证书的认证方式,也提供了基于HTTP Token的简单认证方式。各客户端组件与API Server之间的通信方式仍然采用HTTPS,但不采用CA数字证书。这种认证机制与CA证书相比,安全性很低,在生产环境不建议使用。
最近由于时间不足,暂时无法对小版本更新第一时间出新的文档。若需要升级集群版本,可以参考此文档进行操作,每个节点一个一个的更新。大版本更新请各位持续关注我的Github项目仓库。后续更新会在仓库持续更新。感谢各位小伙伴一直以来的支持。
本文整理我和 林德熙 学习的 dotnet 编译知识、Roslyn 源码分析知识,NuGet 知识。通过阅读本文可以从零散的碎片化博客中得到从零开始学习的轨迹。
若没有安装kubectl,请尝试执行minikube kubectl -- get pods -A。下载kubectl版本。
MongoDB 聚合索引是一种包含多个字段的索引,它可以提高查询效率,特别是在需要对多个字段进行查询或者聚合操作时。以下是 MongoDB 官方文档中关于聚合索引的详细说明和示例:
由于我的腾讯虚拟主机的实例在北京,服务器无法访问k8s.gcr.io, 安装过程有点坎坷,总结一下供大家参考
放假前一两天发现腾讯云托管K8S集群上线好一阵子了, 还支持把原有主机迁入k8s集群, 索性开始搞事了.
集群侧的配置见 TKE容器实现限制用户在多个namespace上的访问权限(上)
你曾经花过一整天时间尝试入门 Kubernetes 吗?多亏最近新出现的一些工具,你可以不用再为此大费周章了。
在k8s里面安装ChaosMesh比较简单,请参考《混沌工程之ChaosMesh使用之一模拟CPU使用率》。
Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
最近在测试日志采集的时候,发现日志数据量稍微大一点,Elasticsearch 就有点抗不住了,对于 ES 的优化可能不是一朝一夕能够完成的,所以打算加一个中间层,将日志输出到 Kafka,然后通过 Logstash 从 Kafka 里面去消费日志存入 Elasticsearch。在测试环境现在并没有一套 Kafka 集群,所以我们来先在测试环境搭建一套 Kafka 集群。
K3S是一个完全符合Kubernetes的发行版。可以使用单一二进制包安装(不到 100MB),安装简单,内存只有一半,最低0.5G内存就能运行。
本集群中kubernetes底层存储使用的是nfs,并且以nfs作为存储创建了storageclass便于动态创建pv
本文环境是二进制部署的k8s集群,prometheus和grafana通过yaml部署(非operator)
上一节《Jenkins X--(5)准备虚拟机环境》完成了虚拟机环境的搭建。这一节开始在虚机上基于minikube搭建k8s环境,用于后面JenkinsX的环境构建。在开始之前,需要对操作系统做一些配置,以方便后续的操作。
Spinnaker 是一种持续交付平台,最初由 Netflix 开发,用于快速、可靠地发布软件变更。Spinnaker 使开发人员可以更轻松地专注于编写代码,而无需担心底层的云基础设施,它可以和 Jenkins 以及其他流行的构建工具无缝集成。很早就想要体验下 Spinnaker 了,但是由于 GFW 的原因尝试了很多次都无功而返,这次解决了代理的问题终于顺利的在 Kubernetes 集群上成功部署上了 Spinnaker。
Homebrew 是一个软件包管理器。它的作用就是将软件包安装到自己的目录中,然后将其文件符号链接到 /usr/local。更多信息,请自行进入官网查看
python FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 COPY requirements.txt requirements.txt RUN pip install -r requirements.txt EXPOSE 5000 COPY . . CMD ["flask", "run"] php FROM php:7.2.34-fpm-alpine WORKDIR /app ENV
因此,当我们计划或者开始使用 Kubernetes 时,我们都应该尝试问自己一个问题:“我该如何进行第一次的部署?”。
Kubernetes 集群的组件众多,要部署一套符合生产环境的集群并不是一件容易的事。不过随着云原生生态的逐渐成熟、社区的快速发展,特别是在它成为事实上的容器编排标准以后,基本所有的主流云平台都完全支持 Kubernetes,或把它作为核心的云解决方案。同时,本地部署也伴随着出现了各类成熟的主动化解决方案。
领取专属 10元无门槛券
手把手带您无忧上云