软件接口 OPC
应用层 ModBus
数据链路层 CAN,ProfiBus
物理层 RS232,RS485
OPC SERVER = OPC驱动器
简单来说,OPC是一套标准,其目的是把PLC特定的协议(如Modbus,Profibus等)抽象成为标准化的接口,作为“中间人”的角色把通用的OPC“读写”请求转换成具体的设备协议来与HMI/SCADA系统直接对接
When the standard was first released in 1996, its purpose was to abstract PLC specific protocols (such as Modbus, Profibus, etc.) into a standardized interface allowing HMI/SCADA systems to interface with a “middle-man” who would convert generic-OPC read/write requests into device-specific requests and vice-versa.
下载B2 TLS安全证书
openssl s_client -showcerts -connect api.backblazeb2.com:443 > b2.crt
mv b2.crt .minio/certs/CAs/
set MINIO_ACCESS_KEY=B2_keyID
set MINIO_SECRET_KEY=B2_applicationKey
minio gateway b2
之前一直用pycharm,今天把code升级到1.3.2的时候, 突然提示我安装python扩展,决定试试。 结果发现python的解释器设置有问题, 总是设置为系统的解释器, 而虚拟环境的解释器不起作用。
apt remove --purge python3.5
reboot
结果ubuntu桌面启动不了。好多应用程序例如chrome,virtualbox都消失了, 造成了很大的麻烦。
Ctrl+Alt+F1进入虚拟控制台登录
apt install python3.5
apt install ubuntu-desktop
重新安装chrome和virtualbox
cd /etc/apt/sources.list.d
sudo mv google-chrome.list.save google-chrome.list
apt update
apt install google-chrome-stable
git clone [email protected]:wubigo/kubernetes.git
git remote add upstream https://github.com/kubernetes/kubernetes.git
git fetch --all
git checkout tags/v1.13.3 -b v1.13.3
git branch -av|grep 1.13
* fix-1.13 4807084f79 Add/Update CHANGELOG-1.13.md for v1.13.2.
remotes/origin/release-1.13 4807084f79 Add/Update CHANGELOG-1.13.md for v1.13.2.
func (kl *Kubelet) syncPod(o syncPodOptions) error {
基于腾讯云Go SDK开发
go get -u github.com/tencentcloud/tencentcloud-sdk-go
从本地开发集群K8S读取安全凭证secretId和secretKey配置信息, 然后把安全凭证传送给SDK客户端
secretId, secretKey:= K8SClient.Secrets("namespace=tencent").Get("cloud-pass")
credential := CloudCommon.NewCredential("secretId", "secretKey")
client, _ := cvm.NewClient(credential, regions.Beijing)
request := cvm.NewAllocateHostsRequest()
request.FromJsonString(K8SClient.Configs("namespace=tencent").Get("K8S-TENCENT-PROD"))
response, err := client.AllocateHosts(request)
Ansible.Hosts().Get(response.ToJsonString())
调用ANSIBLE开始在CVM部署K8S集群
转录语音数据集
mozilla crowdsources the largest dataset of human voices available for use, including 18 different languages, adding up to almost 1,400 hours of recorded voice data from more than 42,000 contributors
CNI是K8S的网络插件实现规范,与docker的CNM并不兼容,在K8S和docker的博弈过程中, K8S把docker作为默认的runtime并没有换来docker对K8S的支持。K8S决定支持CNI规范。 许多网络厂商的产品都提供同时都支持CNM和CNI的产品。
在容器网络环境,经常看到docker看不到K8S POD的IP网络配置, DOCKER容器有时候和POD无法通信。
CNI相对CNM是一个轻量级的规范。网络配置是基于JSON格式, 网络插件支持创建和删除指令。POD启动的时候发送创建指令。
POD运行时首先为分配一个网络命名空间,并把该网络命名空间制定给容器ID, 然后把CNI配置文件传送给CNI网络驱动。网络驱动连接容器到自己的网络, 并把分配的IP地址通过JSON文件报告给POD运行时POD终止的时候发送删除指令。
当前CNI指令负责处理IPAM, L2和L3, POD运行时处理端口映射(L4)
CNI有很多实现,在这里之列举熟悉的几个实现。并提供详细的说明文档。
Flannel
Kube-router
OpenVSwitch
Calico
Calico可以以非封装或非覆盖方式部署以支持高性能,高扩展扩展性数据中心网络需求
Weave Net
网桥
大多数重要的应用程序都是在文件系统的基础上构建,而不是在原始磁盘上 构建。例如LEVELDB.
文件系统在系统崩溃恢复所表现的行为,我们称之为持久化属性,大概分为 两类:原子操作和顺序操作