技术文章

Kubernetes 编排神器之 Helm

我的未来我决定 提交于 2021-02-17 23:56:47
什么是Kubernetes Helm?为什么要使用Helm? 前言 编写一堆Kubernetes配置文件是一件很麻烦的事情。对于一些容器,我们可能需要10多个yaml文件。维护它们是一个问题,而且在不同的环境中运行或使用相同的文件更是是一个噩梦。 我们可以使用一些 bash 技巧来替换某些值,但这是一个不好的做法。 这就是我们为什么要使用helm。 我应该提到,还有另一个很好的工具 ksonnet ,它以自己的方式进行“相同”操作。 在这篇文章中,我将介绍为什么Helm是Kubernetes应用程序必不可少的要素,将Kubernetes应用程序与Helm打包的过程,以及如何使用Helm部署可能具有的某些复杂应用程序。 为什么要使用helm 我最近在部署的微服务很复杂,我的发布文件目录中有65个以上的Kubernetes配置文件 ... o( ^▽^ )┛)。 主要问题是,我要如何把这个服务部署到多个环境中? 或者如何使用Kubernetes制作CI/CD? 当然做一些shell脚本是一个选择,但是我不是很喜欢这样做。 然后,我开始使用Kubernetes研究CI/CD pipline,发现一些团队正在将Helm集成到该过程中。 我们可以将理解为为像应用程序包那样的应用程序,在其中我们可以进行依赖管理,不同类型的钩子(安装前,升级前,安装后等),并且可以轻松升级或回滚。 安装

android 9.0的适配

前提是你 提交于 2021-02-17 23:54:49
使用Retrofi网络框架请求--android9.0 问题:在发送网络请求的时候,出现请求第三方拦截,导致请求一直发不出去,没有请求响应。 解决方式: 在res目录建立xml文件,然后创建安全文件 network_security_config.xml文件,代码如下: <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config> 使用:在Application中添加代码: android:networkSecurityConfig="@xml/network_security_config" 来源: oschina 链接: https://my.oschina.net/u/2832222/blog/2996606

Codeforces 1108D

冷暖自知 提交于 2021-02-17 23:53:09
题目链接: http://codeforces.com/problemset/problem/1108/D time limit per test  1 second memory limit per test  256 megabytes input  standard input output  standard output You have a garland consisting of n lamps. Each lamp is colored red, green or blue. The color of the i-th lamp is si ('R', 'G' and 'B' — colors of lamps in the garland). You have to recolor some lamps in this garland (recoloring a lamp means changing its initial color to another) in such a way that the obtained garland is diverse. A garland is called diverse if any two adjacent (consecutive) lamps (i. e. such lamps that the

自旋锁和互斥锁的区别

旧巷老猫 提交于 2021-02-17 23:52:35
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套API。线程同步是并行编程中非常重要的通讯手段,其中最典型的应用就是用 Pthreads提供的锁机制(lock)来对多个线程之间的共享临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。 Pthreads提供了多种锁机制: Mutex(互斥量):pthread_mutex_t Spin lock(自旋锁): pthread_spin_t Condition Variable(条件变量): pthread_cond_t Read/Write lock(读写锁):pthread_rwlock_t Pthreads提供的Mutex锁操作相关的API主要有: pthread_mutex_lock(pthread_mutex_t *mutex); pthread_mutex_trylock(pthread_mutex_t *mutex); pthread_mutex_unlock(pthread_mutex_t *mutex); Pthreads提供的Spin Lock锁操作相关的API主要有: pthread_spin_lock(pthread_spinlock_t *lock); pthread_spin_trylock(pthread_spinlock_t

简单上传图片到阿里云OSS

╄→гoц情女王★ 提交于 2021-02-17 23:51:51
OSS主要为用户提供数据存储服务,用户可以通过以下操作来处理OSS上的数据: 1、创建、查看、罗列、删除 Bucket; 2、修改、获取Bucket的访问权限; 3、上传、查看、罗列、删除Object/Object Group; 4、访问时支持If-Modified-Since和If-Match等HTTP参数。 特点具体如下: 1、易用性:简单易用,便于管理,深度集成数据处理服务; 2、高可靠:多重冗余备份,服务设计可用性不低于99.99%; 3、强安全:多层次安全防护,支持跨区域复制、异地容灾机制; 4、低成本:总体TCO更低,生命周期管理进一步降低成本。 第一次接触,看官方的文档有点迷,因为OSS提供各种各样的功能,你有的会用到,有的则不需要,我要的很简单,就是上传图片到阿里云然后返回一个URL,开始云里雾里,然后豁然开朗,不要用腾讯云的COS,不支持控制台预览,但是人家免费,练习可以去做做实验 1.仔细阅读文档 2.添加Jar包最好按照官方的版本来,以免造成不必要麻烦,如果报错参考 https://help.aliyun.com/document_detail/32024.html?spm=a2c4g.11186623.6.692.jKNaBu 遇到是在解决不了的就提交工单,回复很快的! aliyun-sdk-oss-2.2.1.jar hamcrest-core-1.1

GMAT作文高频词汇总,VERBAL和AWA都可用

a 夏天 提交于 2021-02-17 23:50:52
GMAT考试 中必要的词汇量是不可或缺的,小编为大家准备了一些高频词组的搭配,希望能对大家的备考有所帮助,备考中的你快来看。 1. GMAT语法一般不用被动语态的动词或动词短语 lead, cause, become, enable,receive, visit, visit, lack, enter, cost, resemble, last,possess,like, enjoy, notice, watch, look at, listen to, pay attention to, suit, fit, contain, so as to do, be able to, be likely to do 2.GMAT语法考试有一部分既可以用主动语态也可以用被动语态的动词 change, close, end, finish, head, interest, issue, open, train,determine sth. be aimed at doing; sb aim to do sth sth be intended to do sth; sb intend to do sth sth be targeted at sth; sb target sth 3. 直接加-ing分词作宾语的动词或动词短语的GMAT语法形式 – acknowledge, avoid,

JUnit5 快速指南

纵然是瞬间 提交于 2021-02-17 23:50:31
JUnit5 快速指南 version: junit5 <!-- TOC depthFrom:2 depthTo:3 --> 1. 安装 2. JUnit 注解 3. 编写单元测试 3.1. 基本的单元测试类和方法 3.2. 定制测试类和方法的显示名称 3.3. 断言(Assertions) 3.4. 假想(Assumptions) 3.5. 禁用 3.6. 测试条件 3.7. 嵌套测试 3.8. 重复测试 3.9. 参数化测试 4. 引用和引申 <!-- /TOC --> 1. 安装 在 pom 中添加依赖 <properties> <junit.jupiter.version>5.3.2</junit.jupiter.version> </properties> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter

Python之Flask项目开发【入门必学】

Deadly 提交于 2021-02-17 23:49:41
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:藤藤菜丶 Flask 安装Flask模块 创建一个Flask项目 运行Flask 运行参数 在网页页面中进行控制台调试 Flask 安装Flask模块 pip install flask 1 创建一个Flask项目,当然如果你python基础还没学好,是不能学flask的。建议先去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿, 只有学好python基础才能学flask,不能跳级! 创建一个app.py文件 from flask import Flask # 导入Flask包 app = Flask(__name__) # 获取Flask对象,以当前模块名为参数 # 路由默认为(127.0.0.1:5000) @app.route('/') # 装饰器对该方法进行路由设置,请求的地址 def hello_world (): # 方法名称 return 'Hello World!' # 返回响应的内容 if __name__ == '__main__': app.run() 运行Flask 通过python 执行app.py文件 python app.py 1 服务会默认的起在127.0

php安装oci8和pdo_oci扩展实现连接oracle数据库

我的梦境 提交于 2021-02-17 23:49:25
PHP一般跟MySQL数据库搭配使用,但最近遇到一个需求需要实现PHP连接Oracle,了解到PHP可以通过pdo_oci和oci8扩展来连接Oracle,这里将安装的过程记录下来。 安装环境:PHP7.2.18,Deepin15.10 首先,安装oci8和pdo_oci扩展依赖的Oracle client。 了解到需要连接的Oracle版本为11.2.0.4.0,在 这里 下载对应版本的Oracle client压缩包。 instantclient-basic-linux.x64-11.2.0.4.0.zip instantclient-sdk-linux.x64-11.2.0.4.0.zip 将上面的压缩包放入同一个目录中解压,这里放入/opt/oracle目录,然后解压,命令如下: cd /opt/ oracle unzip instantclient-basic-linux.x64- 11.2 . 0.4 . 0 . zip unzip instantclient-sdk-linux.x64- 11.2 . 0.4 . 0 . zip 将解压后的文件夹重命名 mv instantclient_11_2 instantclient 添加软连接 cd instantclient ln -s libclntsh.so. 11.1 libclntsh.so ln -s