PD 充电协议

PD 充电协议 thinkpad的 PD 充电协议有可能和通用的 协议 不同, 某些情况下不能握手充电. 紫米65W充电器使用了USB PD中的PPS规范,而部分笔记本电脑型号较早,未有支持PPS协议规范,因为使用紫米65W充电器可能会出现充电协议“握手”失败,进而导致无法正常充电 thinkpad x1 carbon Power Adapter** [1][2] • 45W USB-C® (2-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 45W USB-C (3-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 65W USB-C (2-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 65W USB-C slim (2-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 65W USB-C slim (3-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz

2018-11-25 · 1 min · 73 words · -

aliyun docker

aliyun docker https://cr.console.aliyun.com/cn-qingdao/mirrors 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce 配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json «-‘EOF’ { “registry-mirrors”: [“https://xxxxxx.mirror.aliyuncs.com”] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

2018-10-03 · 1 min · 35 words · -

docker mirror

docker mirror 登录容器Hub服务的控制台,左侧的加速器帮助页面就会显示为你独立分配的加速地址。 https://yq.aliyun.com/articles/29941 https://www.docker-cn.com/registry-mirror 永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。 vim /etc/docker/daemon.json #(create it if it does not exist) { "registry-mirrors": ["https://registry.docker-cn.com"], "insecure-registries": [ "registry.wiloon.com" ] } ### restart docker service # 修改保存后重启 Docker 以使配置生效。 sudo systemctl daemon-reload sudo systemctl restart docker.service ### 查看 sudo docker info daemon.json { "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } http: server gave HTTP response to HTTPS client https://stackoverflow.com/questions/49674004/docker-repository-server-gave-http-response-to-https-client { "insecure-registries":["192.168.99.100:5000"] }

2018-07-15 · 1 min · 65 words · -

rancher

rancher https://rancher.com/docs/rancher/v2.6/en/ RKE: Rancher Kubernetes Engine EKS: Amazon EKS (Elastic Kubernetes Service) GKE: Google Kubernetes Engine https://github.com/rancher/rancher https://helm.sh/ https://k3s.io/ k3s k3s 将安装 Kubernetes 所需的一切打包进仅有 XXMB 大小的二进制文件中。并且,为了减少运行 k8s 所需的内存,删除了很多不必要的驱动程序,并用附加组件对其进行替换。这样,它只需要极低的资源就可以运行且安装所需的时间也非常短,因此它能够运行在树莓派等设备上面,即 master 和 agent 运行在一起的模式。 裁剪功能 过时的功能和非默认功能 过时的功能和非默认功能 Alpha 功能 过时的功能和非默认功能内置的云提供商插件 过时的功能和非默认功能内置的存储驱动 过时的功能和非默认功能 Docker 项目特点 使用 SQLite 作为默认数据存储替代 etcd,但 etcd 仍然是支持的 内置了 local storage provider、service load balancer 等 所有 k8s 控制组件如 api-server、scheduler 等封装成为一个精简二进制程序,单进程即可运行 删除内置插件,比如 cloudprovider 插件和存储插件等 减少外部依赖,操作系统只需要安装较新的内核以及支持 cgroup 即可 缺点不足 因为在高可用的场景中,其没有办法做到或很难做到。所以如果你要进行大型的集群部署,那么我建议你选择使用 K8s 来安装部署。如果你处于边缘计算等小型部署的场景或仅仅需要部署一些非核心集群进行开发/测试,那么选择 k3s 则是性价比更高的选择。 在单个 master 的 k3s 中,默认使用的是 SQLite 数据库存储数据的,这对于小型数据库十分友好,但是如果遭受重击,那么 SQLite 将成为主要痛点。但是,Kubernetes 控制平面中发生的更改更多是与频繁更新部署、调度 Pod 等有关,因此对于小型开发/测试集群而言,数据库不会造成太大负载。 ...

2018-06-09 · 2 min · 256 words · -

docker basic, commands

docker basic, commands commands # Docker images by tag docker rmi $(docker images --filter=reference="tag_name_0" -q) # Docker查看容器完整的容器 ID 和镜像 ID docker ps -a --no-trunc docker exec nexus3 cat /nexus-data/admin.password docker ps --filter"name=test-nginx" docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}" docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.Status}}\t{{.Names}}" docker ps --format "table {{.ID}}\t{{.IMAGE}}\t{{.CREATED}}\t{{.STATUS}}\t{{.NAMES}}" docker inspect xxx docker container update --restart=no <containername> # 修改 docker 容器为开机启动 docker container update --restart=always container_0 # 查看 volume 目录 docker info | grep "Docker Root Dir" 批量删除镜像 docker rmi $(docker images | grep "name0" | awk '{print $3}') docker rmi -f $(docker images | grep "name0" | awk '{print $3}') docker restart foo # 列出所有的容器 ID docker ps -aq # 停止所有的容器 docker stop $(docker ps -aq) # 删除所有的容器 docker image ls docker rm $(docker ps -aq) # 删除所有的镜像 docker rmi $(docker images -q) # 复制文件 docker cp mycontainer:/opt/file.txt /opt/local/ docker cp /opt/local/file.txt mycontainer:/opt/ docker port docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。 ...

2018-01-27 · 6 min · 1129 words · -

ansible playbook

ansible playbook ansible playbook 是一个特定格式的 yaml 文件, 不要直接把搜到的 ansible 文档里的 例子直接粘贴到里面, ansible playbook 至少要包含 hosts tasks, ansible 文档里找到的的 task 要粘贴到 tasks 部分 如果出现奇怪的异常, 比如: ‘ansible.builtin.shell’ is not a valid attribute for a Play, 检查 一下 playbook 文件 是不是标准格式 . ansible playbook sample - name: deploy sample hosts: all vars: ansible_ssh_private_key_file: ~/.ssh/id_ed25519 tasks: - name: Pull an image community.docker.docker_image_pull: name: 192.168.50.111:5000/foo-mock:v0.0.1 platform: amd64 ansible_ssh_private_key_file: config ssh private key path ansible-galaxy collection ansible-galaxy collection list ansible-galaxy collection install community.docker # 安装之后才能用 docker - name: Pull an image community.docker.docker_image_pull: name: pacur/centos-7 # Select platform for pulling. If not specified, will pull whatever docker prefers. platform: amd64 end play ...

2017-08-09 · 2 min · 384 words · -

service mesh

service mesh 微服务 wiloon.com/microservice service mesh 下一代微服务架构 Service Mesh (服务网格) 被认为是下一代微服务架构,Service Mesh并没有给我们带来新的功能,它是用于解决其他工具已经解决过的服务网络调用、限流、熔断和监控等问题, 只不过这次是在 Cloud Native 的 kubernetes 环境下的实现。 Willian Morgan 对 Service Mesh 的解释。 A Service Mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. In practice, the Service Mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware. ...

2016-10-10 · 2 min · 288 words · -

ansible basic command

ansible basic command commands # 临时的 inventory file ansible -i '192.168.50.111,' all -m shell -a 'whoami' -u root ansible-galaxy collection install community.general # localhost ansible localhost -m shell -a 'ls' # 指定私钥 --key-file ansible -i 'wiloon.com,' all -m shell -a 'systemctl stop enx-api' -u root --key-file ~/.ssh/id_ed25519_w10n hibernate ansible -i '192.168.50.31,' all -m shell -a 'sudo systemctl hibernate' -u user0 install Installing Ansible on Ubuntu sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible macos brew install ansible ansible 配置文件 /etc/ansible/ansible.cfg 文件内容 [defaults] interpreter_python = auto_legacy_silent # gather 超时时间 gather_timeout=30 inventory 默认的 Inventory 路径 /etc/ansible/hosts ...

2016-05-13 · 2 min · 382 words · -

aws-cli

aws-cli install # archlinux pacman -Sy aws-cli # macos https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html aws console> iam> user> w10n_ec2>create access key> cli> commands aws configure # default region name: ap-southeast-1 # default output format: json cat ~/.aws/credentials cat ~/.aws/config aws ec2 describe-instances --instance-ids i-xxxxxxxxxxxxxxxxx --query 'Reservations[*].Instances[*].{ID:InstanceId,State:State.Name}' --output table

2014-02-24 · 1 min · 44 words · -

OLAP, OLTP

OLAP, OLTP http://www.cnblogs.com/beyondstorm/archive/2006/08/12/475011.html OLAP和OLTP的区别(基础知识) 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。 当今的数据处理大致可以分成两大类: 联机事务处理OLTP (on-line transaction processing) 、联机分析处理OLAP (On-Line Analytical Processing) 。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。 OLTP OLAP 用户 操作人员,低层管理人员 决策人员,高级管理人员 功能 日常操作处理 分析决策 DB 设计 面向应用 面向主题 数据 当前的, 最新的细节的, 二维的分立的 历史的, 聚集的, 多维的集成的, 统一的 存取 读/写数十条记录 读上百万条记录 工作单位 简单的事务 复杂的查询 用户数 上千个 上百个 DB 大小 100MB-GB 100GB-TB

2013-02-17 · 1 min · 52 words · -

archlinux k8s

archlinux k8s disable swap # check swap usage, if no output, swap is disabled swapon --show # check swap status systemctl list-units --type=swap # disable swap sudo swapoff -a # disable zram swap sudo systemctl mask dev-zram0.swap sudo pacman -Syu reboot sudo pacman -S containerd kubeadm kubelet kubectl curl jq open-iscsi reboot # 如果提示 : iptables-nft-1:1.8.11-2 and iptables-1:1.8.11-2 are in conflict. Remove iptables? [y/N] # 删除 iptables, Kubernetes,推荐使用 iptables-nft,因为 Kubernetes 自 v1.13 起支持 iptables 的 nftables 后端(iptables-nft),而且 nftables 是 Linux 内核中更现代的防火墙实现,逐渐取代传统 iptables。此外,Arch Linux 的默认配置倾向于 nftables。 # 查看 containerd 版本 ctr version lsmod|grep br_netfilter lsmod|grep overlay # 在安装 kubelet 的时候 br_netfilter 已经设置 好了, k8s.conf 里不需要再加 br_netfilter cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay EOF sudo modprobe overlay # 安装 kubeadm 的时候这三个变量会自动设置, 输出应该都是 1 sysctl net.bridge.bridge-nf-call-iptables sysctl net.bridge.bridge-nf-call-ip6tables sysctl net.ipv4.ip_forward # containerd config sudo mkdir /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml vim /etc/containerd/config.toml # 打开文件,找到 `[plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc.options]` # 在下面加 一行 SystemdCgroup = true # 配置 containerd 使用 systemd 作为 cgroup 驱动 # 检查 containerd 的 状态 sudo systemctl status containerd # 重启 containerd sudo systemctl restart containerd sudo systemctl enable --now containerd sudo systemctl status kubelet systemctl enable kubelet.service systemctl enable --now iscsid kube-vip kube-vip 相关的命令要在每个 control plane 节点上执行 ...

2012-12-23 · 4 min · 663 words · -

KubeKey

KubeKey sudo apt install socat conntrack ebtables ipset ipvsadm git clone https://github.com/kubesphere/kubekey.git cd kubekey ./build.sh -p cd output ./kk create cluster https://kubesphere.io/zh/docs/installing-on-linux/introduction/intro/

2012-11-14 · 1 min · 22 words · -

监控系统 Pull, Push

监控系统 Pull, Push https://developer.aliyun.com/article/786418

2012-06-07 · 1 min · 4 words · -

gocd

gocd podman run -d --name gocd-server -p8153:8153 -v /etc/localtime:/etc/localtime:ro gocd/gocd-server:v21.4.0 podman run -d --name gocd-agent -e GO_SERVER_URL=https://gocd.wiloon.com/go gocd/gocd-agent-alpine-3.15:v21.4.0

2012-05-29 · 1 min · 18 words · -

微服务

微服务 微服务是一种分布式系统解决方案。 微服务 (Microservices) 就是一些协同工作小而自治的服务。 2014年,Martin Fowler 与 James Lewis 共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理 (例如 Docker) 能力,服务可以用不同的编程语言与数据库等组件实现 。 微服务与SOA 「面向服务的体系结构」 SOA (Service-Oriented Architecture) 听起来和微服务很像,但 SOA 早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如: J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要一些时间,最终 SOA 看起来很美,但却成为了企业级奢侈品,中小公司都望而生畏。 此外,实施SOA时会遇到很多问题,比如通信协议 (例如SOAP)的选择、第三方中间件如何选择、服务粒度如何确定等,目前也存在一些关于如何划分系统的指导性原则,但其中有很多都是错误的。SOA并没有告诉你如何划分单体应用成微服务,所以在实施SOA时会遇到很多问题。 这些问题再微服务框架中得到很好的解决,你可以认为微服务架构是SOA的一种特定方法。 分布式系统 什么是分布式系统 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。 首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升 (加内存、加磁盘、使用更好的CPU) 高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。因为,分布式系统要解决的问题本身就是和单机系统一样的,而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题,为了解决这些问题又会引入更多的机制、协议,带来更多的问题。。。 “什么是分布式系统?这取决于看系统的角度。对于坐在键盘前使用IBM个人电脑的人来说,电脑不是一个分布式的系统。但对于在电脑主板上趴着的虫子来说,这台电脑就是一个分布式系统。” —— Leslie Lamport 复杂性 流量管理 (Traffic management) : 超时、重试、负载均衡; 安全性 (Security) : 终端用户的认证和授权; 可观察性 (Observability) : 跟踪、监控和日志。 私有数据的所有权 当多个服务直接读写数据库中同一张表时,对这些表做任何改动都需要协调这些相关服务的部署。这一点违背了服务相互独立这一原则。共享的数据存储很容易不经意间造成耦合。每个服务需要有自己的私有数据。 私有数据还能提供另一个优势: 根据服务的具体用例选择最适合的数据库技术。 每个服务都要有自己的数据服务器吗? 不一定。每个服务需要自己的数据库,但这些数据库可共置在一台共享的数据服务器上。重点在于不应让服务知道其他服务底层数据库的存在。这样即可用一台共享数据服务器先开始开发,以后只要更改配置即可将不同服务的数据库隔离起来。 然而共享的数据服务器也可能造成一些问题。首先会形成单点故障,进而导致一大批服务同时故障,这一点绝不能掉以轻心。其次很可能因为一个服务占用太多资源而无意中对其他服务造成影响。 确定服务的边界 这个问题很复杂。每个服务应该是一种能提供某些业务能力的自治单位。 服务应当弱耦合在一起,对其他服务的依赖应尽可能低。一个服务与其他服务的任何通信都应通过公开暴露的接口 (API、事件等) 实现,这些接口需要妥善设计以隐藏内部细节。 服务应具备高内聚力。密切相关的多个功能应尽量包含在同一个服务中,这样可将服务之间的干扰降至最低。 服务应包含单一的界限上下文。界限上下文 (Bounded context) 可将某一领域的内部细节,包括该领域特定的模块封装在一起。 ...

2012-01-01 · 1 min · 136 words · -

Jenkins basic

Jenkins basic jenkins docker docker network create jenkins docker image pull docker:dind # generate cert su - root mkdir /root/certs && cd /root/certs openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key docker run \ --name jenkins-docker \ --rm \ --detach \ --privileged \ --network jenkins \ --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 2376:2376 \ docker:dind \ --storage-driver overlay2 dockerfile 创建镜像 ...

2011-09-30 · 2 min · 306 words · -

ubuntu install k8s

ubuntu install k8s ubuntu 24.04 安装 单节点 k8s sudo swapoff -a sudo sed -i '/swap/s/^/#/' /etc/fstab sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl # 安装 containerd, 我之前 已经 安装 了, 跳过这步 K8S_VER="v1.33.4" ARCH="amd64" # 下载二进制文件 curl -LO "https://dl.k8s.io/release/${K8S_VER}/bin/linux/${ARCH}/kubectl" curl -LO "https://dl.k8s.io/release/${K8S_VER}/bin/linux/${ARCH}/kubeadm" curl -LO "https://dl.k8s.io/release/${K8S_VER}/bin/linux/${ARCH}/kubelet" # 添加可执行权限 chmod +x kubectl kubeadm kubelet # 移动到系统 PATH 目录 sudo mv kubectl kubeadm kubelet /usr/local/bin/ /etc/systemd/system/kubelet.service [Unit] Description=kubelet: The Kubernetes Node Agent Documentation=https://kubernetes.io/docs/ After=containerd.service Wants=containerd.service [Service] ExecStart=/usr/local/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target sudo systemctl daemon-reload sudo systemctl enable kubelet VERSION="v1.34.0" curl -LO https://github.com/kubernetes-sigs/cri-tools/releases/download/${VERSION}/crictl-${VERSION}-linux-amd64.tar.gz sudo tar -C /usr/local/bin -xzvf crictl-${VERSION}-linux-amd64.tar.gz crictl --version # 如果之前 有过 初始化 sudo kubeadm reset -f sudo systemctl stop kubelet # 初始化集群, kubeadm 会启动 kubelet 服务 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 install Kubernetes 1.28.2 on Ubuntu 22.04 ...

2006-01-02 · 5 min · 929 words · -