Rancher vs. Kubesphere

Rancher vs. Kubesphere

info.RancherKubesphere
开发者Rancher/SUSE青云开源
源码rancher/rancherkubesphere/kubesphere
Stars15.5k4.4k
安装Helmks-installer(Ansible)+CDR
部署 K8Srke/rancherkubekey
版本v2.5v3.0
监控Grafana+PrometheusPrometheus+前端集成
告警Grafana/Altermanager邮件、企业微信、Slack
日志Banzi OperatorElasticseach, fluentbit + 前端集成
事件日志,审计日志
ServiceMeshIstioIstio
DevOps2.5 之前 - rancher-pipeline/Jenkins/docker-registry/minio
Fleet GitOps
Jenkins
应用商店Helm Repoopenpitrix/openpitrix
角色权限管理
配置方式Web UI编辑 CDR/yaml
应用HelmHelm/CDR
实现依赖-etcd+redis+minio+openldap+mysql
实现服务rancher+fleetks-controller-manager+ks-apiserver+ks-console
多集群⭐️⭐️⭐️⭐️
UI 美观⭐️⭐️⭐️⭐️⭐️
UI 功能⭐️⭐️⭐️⭐️⭐️
云平台集成⭐️⭐️⭐️
文档⭐️⭐️⭐️
开发友好⭐️⭐️⭐️⭐️
运维友好⭐️⭐️⭐️⭐️
使用者对 K8S 掌握程度
核心体验多集群运维部署管理友好的一体化开发管理

Firecracker 运行 AlpineLinux

Firecracker 运行 AlpineLinux

Firecracker 是亚马逊 AWS 为了解决虚拟化运行 serveless 服务实现的 VMM/Virtual Machine Monitor,作为 QEMU 的替代品,专注于为云上环境提供虚拟化。

优点

  • 启动快 < 125ms
  • 内存占用少 < 5mb
  • Rust 实现
  • musl 静态链接
  • firecracker 自身约 1.6 MB - 无依赖

Kubernetes vs OpenStack

10年趋势

Kubernetes vs OpenStack

简介

vsOpenStackKubernetes
起源2010 年 NASA+Rackspace1.0 2015 年 Google
定位私有云容器编排
主要调度资源计算/VM
存储
网络
容器
及配套周边资源
自定义资源
主要编写语言PythonGolang

人生第四阶段

人生第四阶段

人生阶段

鲁道夫·施泰纳的人智学理论,定义人的发展每七年一个阶段。

鲁道夫·施泰纳 - Rudolf Steiner,1861年2月27日-1925年3月30日,奥地利的哲学家、改革家、建筑师和教育家

微服务杂念

微服务杂念

微服务已经是一个不再新鲜的概念,但我却依然模糊不清。

Hello CGO

Hello CGO

Tips

初试

# 生成 libdemo.so libdemo.h
go build -buildmode=c-shared -o libdemo.so ./demo.go
# 编译 main
go build main.go
./main
# macos - 查看内容
nm libdemo.so | grep hello -i
# linux
nm libdemo.so
# windows
dumpbin /EXPORTS libdemo.dll
# windows 交叉编译 - 需要安装 mingw
brew install mingw-w64
# 32 位 交叉编译
GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go build -buildmode=c-shared -o libdemo.dll ./demo.go
GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go build main.go
# macos wine 不支持 32 位 - mingw 版本低不支持 64 位
# mac 会出现异常 cc1: sorry, unimplemented: 64-bit mode not compiled in
# 通过 docker 编译
docker run --rm -v $HOME/go:/root/go -v $PWD:/host -w /host wener/go:win sh
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build -buildmode=c-shared -o libdemo.dll ./demo.go
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build main.go
# 回到 mac 使用 wine 执行
# wine 无法在 macos 上编译安装 - 系统版本问题 - 需要使用 cask 安装
brew cask install wine-stable
wine64 main.exe
# wine 4.0 初始化 dll 失败
# 0010:fixme:winsock:set_dont_fragment IP_DONTFRAGMENT for IPv4 not supported in this platform
# 0009:err:module:attach_dlls "libdemo.dll" failed to initialize, aborting
# 0009:err:module:attach_dlls Initializing dlls for L"Z:\\Users\\wener\\demo\\main.exe" failed, status c0000005

demo.go

package main
import "C"
//export Version
func Version() int32 {
return 123
}
//export Hello
func Hello(name *C.char) *C.char {
return C.CString("Hello "+C.GoString(name)+"!")
}
func main() {}

main.go

package main
import "fmt"
/*
#cgo CFLAGS: -I.
#cgo LDFLAGS: -L. -ldemo
#include "libdemo.h"
*/
import "C"
func main() {
fmt.Printf("Int %v String %v\n",C.Version(), C.GoString(C.Hello(C.CString("Wener"))))
}