Docker集群之安装Kubernetes
kubectl安装
kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。
官方文档:Install and Set Up kubectl
window平台(需要bash on ubuntu环境)
1 | #切换bash on Ubuntu命令 |
Linux平台
1 | #下载kubectl |
Minikube安装
官方文档kubernetes/minikube
Linux
1 | #安装配置minikube |
Windos
1 | #安装配置minikube |
。。。。。放弃,转用swarm ,已卸载相关下载文件
弃坑理由:安装负杂,需要安装虚拟机,对环境要求高,学习成本高,swarm和Kubernetes对dockers的差距越来越小
Docker集群之安装Swarm
Docker Swarm官网
准备工作
1 | #centos7.3 |
- TCP 2377 集群管理通信
- TCP/UDP 7946 容器(container)网络发现
- UDP 4789 容器(container)入口网络
Swarm 安装
centos manager(xuanPs)
1 | #初始化节点 |
创建和删除服务
参考inspect-service、scale-service、delete-service
docker service create --replicas 1 --name helloworld alpine ping docker.com
docker service create
创建服务--name
服务的名字--replicas
指定实例运行数量alpine ping docker.com
指定alpine执行ping命令
1 | #查看运行的服务 |
升级服务
docker service create --replicas 3 --name redis --update-delay 10s redis:3.0.6
--update-delay
多个服务启动时之间的时间间隔eg:4h2m1s
参考rolling-update
1 | #创建运行rdeis3.0.6服务 |
关闭一个节点
参考drain-node
1 | #关闭moby节点Availability为drain |
使用群组路由模式
参考Use swarm mode routing mesh
1 | { |
idea之mybatis插件安装注册
MyBatis plugin插件安装步骤(弃用,重新打开失效)
安装setting->Plugins->Browse Respositories…->MyBatis plugin
重启
执行下面代码生成KEY和RESULT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42import java.security.InvalidKeyException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
class Main {
public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
keygen.initialize(512);
KeyPair kp = keygen.generateKeyPair();
RSAPrivateKey privateKey = (RSAPrivateKey)kp.getPrivate();
RSAPublicKey publicKey = (RSAPublicKey)kp.getPublic();
System.out.println("KEY:\n" + bytesToHexString(publicKey.getEncoded()) + "\n");
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE,privateKey);
System.out.println("RESULT:\n" + bytesToHexString(cipher.doFinal("ilanyu".getBytes())) + "\n");
}
private static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (byte aSrc : src) {
int v = aSrc & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
}把key和result填到
C:\Users\{用户}\.IntelliJIdea2017.2\config\options\mybatis.xml
中对应的字段
frp内网穿透
fatedier/frp
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
系统 | 版本 | 解压 |
---|---|---|
Centos7(64) | frp_0.48.0_linux_arm64.tar.gz | tar -zxvf |
mac | frp_0.48.0_darwin_amd64.tar.gz | 双击 |
Centos7(x86) | frp_0.48.0_linux_386.tar.gz |
搭建一个远程访问内网的web应用
frps 服务端程序(配置文件frps.ini),放到公网ip的机器上(阿里云)
frpc 客户端程序(配置文件frpc.ini),放到内网环境机器上(win10)
法一 通过域名访问内网web服务
frps 服务端设置
1 | # frps.ini |
启动服务端./frps -c ./frps.ini
frpc 客户端设置
1 | # frpc.ini |
启动客户端.\frpc.exe -c .\frpc.ini
法二 通过ssh(IP)访问内网web服务
frps 服务端设置
1 | # frps.ini |
启动服务端./frps -c ./frps.ini
frpc 客户端设置
1 | # frpc.ini |
启动客户端.\frpc.exe -c .\frpc.ini
WSL重装win10的Ubuntu子系统
命令行
lxrun
查看对LX子系统执行管理操作的帮助
lxrun /install
安装子系统
lxrun /uninstall
卸载子系统
lxrun /setdefaultuser
配置子系统用户
lxrun /update
更新子系统的包索引
安装brew
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)" |
WSL2配置桥接网络访问
以下是启用此模式的当前优势:
- IPv6 支持
- 使用 localhost 地址
127.0.0.1
从 Linux 内部连接到 Windows 服务器。 不支持 IPv6 localhost 地址::1
- 改进了 VPN 的网络兼容性
- 多播支持
- 直接从局域网 (LAN) 连接到 WSL
安装wsl2,执行
wsl --install
新建
.wslconfig
文件,文件路径为C:\Users\<UserName>\.wslconfig
。详细配置见https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#configuration-settings-for-wslconfig,部分配置需要 Windows 11 版本 22H2 或更高版本。1
2
3
4
5[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=false
autoProxy=true重启wsl,执行
wsl --shutdown
,然后执行wsl
使用管理员权限在 PowerShell 窗口中运行以下命令(允许入站连接),执行
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
参考
WSL安装redis
环境
- ubuntu16.04(bash on window)
安装
sudo apt-get update
更新源sudo apt-get upgrade
更新软件sudo apt-get install build-essential
安装编译环境(包括gcc)sudo apt-get install tcl8.5
安装tcl8.5wget http://download.redis.io/releases/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make
sudo make install
cd utils/
sudo ./install_server.sh
sudo service redis_6379 start
sudo service redis_6379 stop
安装结果:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
参考:
Windows 10 Linux子系统 (wsl)学习手记
WSL安装gcc
- ubuntu16.04(bash on window)
- gcc
1 | sudo apt-get update && \ |
选择默认gcc版本
sudo update-alternatives --config gcc
安装redis
安装好了要清理下redis的目录
make distclean
在make
在redis目录下
运行服务端
src/redis-server
运行客户端
src/redis-cli
参考
application2000/how-to-install-latest-gcc-on-ubuntu-lts.txt
方法二
sudo apt-get install build-essential
安装编译环境(包括gcc)
JavaEE之Oracle搭建
环境安装
- 下载Oracle 12c(Enterprise),总共两个文件(File1,File2),可右键复制链接迅雷下载
两个文件都解压
双击
setup.exe
运行注:解决
[INS-30131]
错误:计算机管理添加C盘共享,权限设置为管理员完全权限,其他用户可读。安装选项
创建配置数据库
桌面类
创建新windos用户(root,xuanxuan)
输入口令(数据库名orcl.lan;口令Mimais163)
弹窗口令管理修改 sys(mimais163R)system(mimais163A)
参考:
机器学习之监督学习
监督学习(supervised-learning)
regression(回归)
Given a picture of a person, we have to predict their age on the basis of the given picture
通过历史的数据,预测新的数据(线性)
eg:预测问题、房价问题
classification(分类)
Given a patient with a tumor, we have to predict whether the tumor is malignant or benign.
根据特征识别,无数个好特征(向量),然后判断属于哪个
eg:识别问题、肿瘤问题
无监督学习(unsupervised-learning)
通过聚类(分组)算法,无需指定特征
聚类(Clustering)
eg: 新闻分组
集群(Non-clustering)
eg:音频分离