Kuberentes客户端编程
客户端基础
常用包
1 2 3 4 5 6 7 8 9 |
import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/kubernetes" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/api/errors" ) |
配置和连接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var ( masterURL string kubeConfig string ) func main() { flag.StringVar(&masterURL, "master-url", "", "URL of kubernetes master") flag.StringVar(&kubeConfig, "kube-config", "", "Kubernetes configuration file location") flag.Parse() // 构建配置信息 cfg, err := clientcmd.BuildConfigFromFlags(masterURL, kubeConfig) if err != nil { log.Fatalf("Invalid arguments: %s", err.Error()) } // 创建API集 clientset, err := kubernetes.NewForConfig(cfg) if err != nil { log.Fatalf("Failed to connect to api server: %s", err.Error()) } } |
集群内连接
在Pod中访问API Server,可以使用集群授予的ServiceAccount作为凭证。参考如下代码:
查询
get
list
通过标签选择器列出:
watch
可以持续监控目标资源的变化:
更新
下面是修改Deployment环境变量定义的例子:
创建
下面代码片断示意了如何创建一个完整的Deployment对象:
扩容
转换为静态类型
动态客户端的CRU…
阅读全文
6 years ago
0
2
使用sysrqd进行远程控制
简介
sysrqd是一个简单的守护程序,允许你透过网络发送SysRQ快捷键。某些情况下,远程机器网络可以连通,但是SSH无法登录,可以利用sysrqd强制重启。
安装
1 2 3 |
apt install -y sysrqd echo "password" > /etc/sysrqd.secret service sysrqd restart |
使用
sysrqd默认监听4094端口,在客户机上,使用telnet登录:
1 |
telnet remote-ip 4094 |
根据提示输入密码。然后输入SysRQ快捷键即可。输入q可以退出telnet。
常用SysQR快捷键
按键 | 说明 |
b | 立即重启,不卸载文件系统、不sync页面缓存 |
c | 触发一次系… |
7 years ago
0
Go语言中的模板引擎
template包
包text/template实现了一个数据驱动的模板引擎,类似的还有html/template包,两者接口一样,但是后者针对HTML进行处理,可以防止某些注入式攻击。
模板的源码是一段UTF-8文本,其中会有一些 {{ }}包围的动作(Action)。模板执行时,动作中的内容 —— pipeline —— 被计算、替换…
阅读全文
7 years ago
4
6
使用Gitea搭建Git服务器
安装
Ubuntu
1 2 3 4 5 6 7 8 |
pushd /opt/gitea mkdir -p custom/conf/ mkdir repos wget -O gitea https://dl.gitea.io/gitea/1.3.2/gitea-1.3.2-linux-amd64 chmod +x gitea nohup /opt/gitea/gitea web > /dev/null 2>&1 & |
配置
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 42 43 44 45 46 47 48 49 50 51 52 53 |
RUN_USER = root RUN_MODE = prod APP_NAME = Gmem Gitea [repository] ROOT = /opt/gitea/repos [server] PROTOCOL = https DOMAIN = git.gmem.cc HTTP_ADDR = 0.0.0.0 HTTP_PORT = 3443 ; 证书需要完整的链 CERT_FILE = /etc/letsencrypt/live/git.gmem.cc/fullchain.pem KEY_FILE = /etc/letsencrypt/live/git.gmem.cc/privkey.pem SSH_DOMAIN = git.gmem.cc ROOT_URL = https://git.gmem.cc/ DISABLE_SSH = false SSH_PORT = 22 LFS_START_SERVER = true LFS_CONTENT_PATH = /opt/gitea/data/lfs LFS_JWT_SECRET = s52JAPPWiOFpp8CZiPHrlGeHWtwv6WCphZtBG5vNLE8 OFFLINE_MODE = false [mailer] ENABLED = false [service] REGISTER_EMAIL_CONFIRM = false ENABLE_NOTIFY_MAIL = false DISABLE_REGISTRATION = true ENABLE_CAPTCHA = false REQUIRE_SIGNIN_VIEW = false DEFAULT_KEEP_EMAIL_PRIVATE = false DEFAULT_ALLOW_CREATE_ORGANIZATION = true DEFAULT_ENABLE_TIMETRACKING = true NO_REPLY_ADDRESS = noreply@gmem.cc [picture] DISABLE_GRAVATAR = false ENABLE_FEDERATED_AVATAR = false [openid] ENABLE_OPENID_SIGNIN = true ENABLE_OPENID_SIGNUP = false [session] PROVIDER = file [log] MODE = file LEVEL = Info ROOT_PATH = /opt/gitea/log |
阅读全文
7 years ago
0
Prometheus学习笔记
简介
Prometheus是一个开源监控系统,它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。
Prometheus的主要特性包括:
- 多维度数据…
7 years ago
1
2