docker
文章平均质量分 70
weixin_40455124
这个作者很懒,什么都没留下…
展开
-
cgroupdriver 设置导致的docker memory limit 不生效
根据描述,讲docker 启动改为/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=cgroupfs。网上查了很多文档,包括设置"GRUB_CMDLINE_LINUX=systemd.unified_cgroup_hierarchy=false"的文档,但最终发现是Cgroup Driver的原因,从systemd改为cgroupfs就正确了。原创 2023-05-29 21:00:55 · 784 阅读 · 0 评论 -
docker 实例内执行jinfo及jcmd总结
如果没有root或者安全不能执行以上操作,可以使用jcmd进行替代,执行jcmd的时候可以先使用jcm pid help 获取可以执行的命令。需要注意 执行jinfo的用户,使用kernel.yama.ptrace_scope=0的时候需要和启动java 进程的用户一致。在容器内执行jinfo,在ubuntu下经过测试以下命令不一定能行。但也可以在宿主机上通过设置ptrace_scope=0实现。使用privileged 模式是可行。原创 2023-01-20 12:30:24 · 330 阅读 · 0 评论 -
Vmware 虚拟机无法docker pull
Vmware 虚拟机无法docker pull,出现如下类似错误。关键是出现地址1.1.1.1:53。解决方式很简单,reboot。原创 2022-09-23 08:08:42 · 673 阅读 · 0 评论 -
docker-compose profile 支持
docker-compose 在新版本增加了profile 支持,可以同profile启动compose里面全部/部分docker实例,当出现如下错误。可以直接采用以下命令升级,其中“v2.11.0”可以去github查看对应版本url。升级docker-compose。然后指定profile 启动。需要升级到1.28以上。原创 2022-09-20 08:15:23 · 2017 阅读 · 0 评论 -
k8s 1.23.7 虚拟机安装记录2
简单记录2点k8s使用kubeadm初始化报如下错误:call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp 127.0.0.1:10248: connect: connection refused.在 /etc/docker/daemon.json 增加“exec-opts”: [“native.cgroupdri原创 2022-07-13 07:17:11 · 301 阅读 · 0 评论 -
阿里kube-eventer mysql sink简单使用记录
阿里kube-eventer 可以将k8s event 直接插入mysql,根据github上的官方文档,设置sink如下:就可以启动(ps,必须保证coredns正常)。在mysql上创建db及表,注意表名也是kube_eventer查看表有如下数据:原创 2022-06-29 22:39:55 · 310 阅读 · 0 评论 -
coredns 修改upstream
coredns 默认upstream/forword 是8.8.8.8,如果不修改很容易crash,需要可以参考 :https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/。因此如果是使用自己创建的coredns image,可以修改/etc/resolv.conf文件内容,有可以修改configMap,然后delete 已经存在pod达到修改的目的。...原创 2022-06-29 22:23:24 · 528 阅读 · 0 评论 -
keda 2.7.1 scaledJob 代码简要分析
scaledJob 用途官方描述:As an alternate to scaling event-driven code as deployments you can also run and scale your code as Kubernetes Jobs.本质是通过各种metric控制job 数量,核心代码在以下go文件scaledjob_controller和scaledobject_controller类似,通过requestScaleLoop函数:调用scale_handler.go的Ha原创 2022-06-23 08:19:59 · 239 阅读 · 0 评论 -
k8s 1.23 node-exporter采集配置的两种方式
方式1,只需要DS模式在每个node部署node-Exporter:方式2,基于serviceprometheus job配置如下:需要为node-Exporter 配置Service原创 2022-06-08 20:36:15 · 770 阅读 · 1 评论 -
k8s 1.23 及keda 2.7.1 安装测试
记录一下k8s 1.23 及keda 2.7.1 安装测试过程。指定国内registry 及版本进行安装:查看结果:安装flannel及metrics-serverkubectl apply -f flannel/kube-flannel.yml安装metric-server,修改为国内的registry及不是要tls(生产不建议跳过tls)kubectl apply -f metrics-server/metrics-server.yaml查看metrics-server是否成功安装:kubec原创 2022-06-07 07:53:57 · 331 阅读 · 0 评论 -
K8S 1.23 metrics-server及cadvisor 杂记
metrics-server是取代heapster,需要开启aggregate(默认开启),k8s建议生产环境开启tls认证以保障node安全。aggregate可以查看top pod及node :kubectl -n kube-system top podmetrics-server 还支持custom metric和external metric (比如keda),这些metric都可以用于HPAmetric-server 还增加了summary 查看,如以下命令:kubectl get --raw原创 2022-06-06 08:22:36 · 1039 阅读 · 0 评论 -
[kubelet-check] The HTTP call equal to ‘curl -sSL http://X.X.X.X:10248/healthz‘ failed
基于K8S 1.23.5+ubuntu 20/22,很多种情况都可以导致类似’curl -sSL http://X.X.X.X:10248/healthz’ failed。docker需要指定native.cgroupdriverroot@ubuntu:~# ps -ef|grep dockerroot 1196 1 2 Jun01 ? 00:14:18 /usr/bin/dockerd -H fd:// --containerd=/run/containerd原创 2022-06-02 05:56:31 · 219 阅读 · 0 评论 -
cilium 1.11.5 minikube下安装记录
先ps一下,用KIND模式安装,所有pod都能启动,然后就一直crash,原因不明。启动minikubeminikube start --network-plugin=cni --cni=false --force --driver=dockerload image to minkubeminikube image load quay.io/cilium/cilium:v1.11.5minikube image load quay.io/cilium/operator:v1.11.5mini原创 2022-05-29 09:43:35 · 252 阅读 · 0 评论 -
APISIX 2.13.1 docker模式下开发java ext plugin
记录下以docker-compose模式运行apisix,java ext plugin 开发socket 目录问题不能使用/tmp/runner.sock ,/tmp 在docker 内会被map为一个目录,换一个普通目录就可以,正常map后在docker lsroot@0715b8853748:/usr/local/apisix# ls -ltr /sockettotal 0srwxr-xr-x 1 root root 0 May 1 10:10 runner.sock第一位是s,如果使原创 2022-05-01 20:34:31 · 1918 阅读 · 0 评论 -
kubeedge 1.9.1安装记录
kubeedge 1.9.1安装,基于将cloudcore及edgecore 安装到同一虚拟机上准备动作下载二进制包,ln keadm命令到etc[root@140 etc]# ls -ltr /usr/bin/keadmlrwxrwxrwx. 1 root root 51 Jan 25 10:33 /usr/bin/keadm -> /root/kubeedge/keadm-v1.9.1-linux-amd64/keadm/keadm或者keadm直接复制到path下复制kubeed原创 2022-01-26 22:15:49 · 390 阅读 · 0 评论 -
Mark一下 ,Docker虚拟网络导致的网络不通
最近在测试环境遇到两台虚拟机网络突然不通,一开始没有想明白,用ip addr看了一下就清楚[root@140 ~]# ip route listdefault via 192.168.157.2 dev ens33 proto static metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 172.18.0.0/16 dev br-af261a4f0e5c proto kernel scope li原创 2022-01-26 21:01:21 · 1260 阅读 · 0 评论 -
kubeadm 安装指定kubernetes 版本
kubeadm 安装指定版本 其实包括2步使用yum 等工具安装指定版本的kubeadm,kubelet及kubectlyum install kubeadm-1.17.1 …使用config文件在kubeadm init时候指定版本:kubeadm init --config init.ymlinit.yaml文件可以参考https://kubethink.com/posts/create-an-on-premises-cluster-in-china-v1-12/ 及https://ku原创 2022-01-04 21:23:37 · 1811 阅读 · 0 评论 -
CNCF -容器安全隔离技术学习笔记
gvisorSentry对上(容器应用)提供所有系统操作,但不是透传给底层宿主机只提供受限的API通过隔离提供安全性File system operations 发送给GoferSentry process is started in a restricted seccomp container without accessto file system res...原创 2020-04-03 21:38:05 · 362 阅读 · 0 评论 -
CNCF Operator 和 Operator Framework 学习笔记
Operator 和 Operator Frameworkoperator 概述CRD (Custom Resource Definition):允许用户自定义 Kubernetes资源,是一个类型;CR (Custom Resourse):CRD 的一个具体实例;webhook:它本质上是一种 HTTP 回调,会注册到 apiserver 上。在 apiserver特定事...原创 2020-04-03 21:08:55 · 321 阅读 · 0 评论 -
CNCF CRD 学习笔记
适合场景use Kubernetes client libraries and CLIs to create and update the newresourcetop-level support from kubectlbuild new automation that watches for updates on the new object, and thenCRUD ...原创 2020-04-03 21:02:46 · 209 阅读 · 0 评论 -
CNCF CSI-FlexVolume学习笔记
volume加载过程1.用户创建一个包含PVC的Pod。2.PVController会不断观察ApiServer,负责PV和PVC绑定(包括创建新PV-)。3.通过Scheduler完成调度功能。4.PV还没有被挂载(Attach)到选定NODE,ADController就会调用VolumePlugin,把远端的Volume挂载到目标节点中的设备上(如:/dev/vdb)。5.当Volu...原创 2020-04-03 20:53:34 · 484 阅读 · 0 评论 -
CNCF StatefulSets 学习笔记
适合场景 Stable, unique network identifiers. Stable, persistent storage. Ordered, graceful deployment and scaling. Ordered, automated rolling updates.Limitations PV受限于底层(者)提供者,或者需要事先创建好 当删除或者...原创 2020-04-03 19:49:39 · 150 阅读 · 0 评论 -
CNCF CNI 学习笔记
如何使用 CNI1 首先在每个结点上配置 CNI 配置文件(/etc/cni/net.d/xxnet.conf),其中 xxnet.conf 是某一个网络配置文件的名称;2 安装 CNI 配置文件中所对应的二进制插件;3 在这个节点上创建 Pod 之后,Kubelet 就会根据 CNI 配置文件执行前两步所安装的 CNI 插件4 在节点运行的 Daemon 进程学习到集群所有 Pod 的 ...原创 2020-04-03 19:41:08 · 198 阅读 · 0 评论 -
使用nfs 作为PV 学习StatefulSet
使用 quay.io/external_storage/nfs-client-provisioner 作为动态pv的storageClass来测试StatefuleSet。注意nfs-client-provisioner 会不时连接不到api-server,原因不详。先上关键配置,StorageClass及nfs 对应的deamon(deployment):---apiVersion: s...原创 2020-04-03 19:28:13 · 256 阅读 · 0 评论 -
CNCF GPU使用及Device Plugin 学习
- 需求动力2.1加速部署:通过容器构想避免重复部署机器学习复杂环境;2.2提升集群资源使用率:统一调度和分配集群资源;2.3保障资源独享:利用容器隔离异构设备,避免互相影响。- 容器环境下使用 GPU 应用3.1构建支持 GPU 的容器镜像3.2把 GPU 设备和依赖库映射到容器中(c.b.a)docker run --device(c.b.b)驱动volume mapp...原创 2020-04-03 08:06:50 · 275 阅读 · 0 评论 -
CNCF 调度学习笔记
1.1. 分工1.1.1. kube-apiserver1.1.1.1. 接收kubelet,发送(webhooks)给controller1.1.1.2. 接收controller 结果,保存到etcd1.1.2. controller1.1.2.1. validate/Admit1.1.3. Scheduler1.1.3.1. 寻找合适node 并进行bind1.1.4. k...原创 2020-04-03 07:16:00 · 508 阅读 · 0 评论 -
CNCF 调度器学习笔记
1.1. 调度流程和算法1.1.1. 指定调度策略1.1.1.1. 配置文件 File,或者是命令行参数,或者是配置好的 ConfigMap1.1.1.2. ConfigMap 主要用于扩展?1.1.1.3. 用 --write-config-to 可以把默认配置写到一个指定文件里面1.1.2. 数据获取机制1.1.2.1. Informer1.1.2.1.1. https://w...原创 2020-04-03 07:07:51 · 225 阅读 · 0 评论 -
CNCF ETCD 学习笔记
etcd几点原理两个quorum一定存在交集Read and write values using standard HTTP tools, such as curl定期compactkey 数据项1使用get key --prefix -w=json|jqheader.revisionetcd 全局增长的revisionkvs[].create_revision...原创 2020-04-03 05:53:38 · 316 阅读 · 0 评论 -
CNCF 容器核心技术学习笔记
namespace1IPC 隔离 System V IPC 和 POSIX 消息队列2Network 隔离网络资源3Mount 隔离文件系统挂载点4PID 隔离进程ID5UTS 隔离主机名和域名6User 隔离用户和用户组CgroupCgroup 是 Control group 的简称,是 Li...原创 2020-04-02 22:46:00 · 219 阅读 · 0 评论 -
Ali CNCF 错题-如何限制daemonset 的 pod 只运行在某些节点
多选 10.使用哪些标签能让 daemonset 的 pod 只运行在某些节点?A. .spec.template.spec.nodeSelectorB. .spec.template.spec.affinityC. Taints and TolerationsD. matchExpressions官方答案是A及B,实际上C也是可以限制节点--- apiVersion: apps/v...原创 2020-04-02 22:32:00 · 381 阅读 · 0 评论 -
docker kill 才是kill 容器的终极武器
在传统模式下kill -9 或者kill能杀掉进程,包括top及sleep,但是在容器内就不一定了。以下是测试过程[root@node1 ~]# docker run -d -it --name kill-demo-top ubuntu topdocker run -d -it --name kill-demo-sleep ubuntu sleep 3600449d0f5d0eadf47...原创 2020-04-02 22:30:18 · 915 阅读 · 0 评论 -
CNCF Kata Runtime 部署试用
几点写在前面同步安装了Docker 19.03.8基于kubeadm+docker 模式已经安装成功后替换某个节点为Containerd+katacontainerd 1.3的toml文件差异很大,没有找到文档,基于1.2版本完成注意containerd使用的image不能复用docker下载的image,所有image要重新下载查看要使用crictl,crictl更适合kuberne...原创 2020-04-02 20:17:15 · 715 阅读 · 0 评论 -
CNCF RuntimeClass学习笔记
RuntimeClass容器运行时的演进过程Kubernetes 正式开源,Docker 是当时唯一的、也是默认的容器运行时。Kubernetes v1.3:Rkt 合入 Kubernetes 主干,成为了第二个容器运行时1.5 版本时推出了 CRI1.12 开始引入runtimeClass,Kubernetes v1.14 beta容器运行时关注点集群里有哪些可用的容器运行时...原创 2020-04-02 20:02:28 · 165 阅读 · 0 评论 -
CNCF kube-router 学习
kube-router安装不同模式下安装方式不同,参见https://github.com/cloudnativelabs/kube-router/blob/master/docs/user-guide.md使用功能模式a)pod networking and network policyb)providing service proxy, firewall and pod ne...原创 2020-04-01 08:57:38 · 360 阅读 · 0 评论 -
CNCF ingress 学习笔记
definition1 Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster2 Exposing services other than HTTP and HTTPS to the internet typically uses a service of typ...原创 2020-04-01 08:44:24 · 159 阅读 · 0 评论 -
CNCF Services, Load Balancing, and Networking学习笔记
Services, Load Balancing, and NetworkingEndpointSlice1.17 betaAddress Types1 IPv42 IPv63 FQDN (Fully Qualified Domain Name)Topology1 kubernetes.io/hostname - The name of the Node this endpoint...原创 2020-04-01 08:33:42 · 173 阅读 · 0 评论 -
CNCF 监控和日志学习
监控监控类型1 资源:C\M\N\DISK IO2 性能监控:应用内部监控,通常通过hook3 安全监控4 事件监控:event监控演进1 从heapster到metricsServer2 本质上heapstar性能好,但metricsServer方便使用3 把 Heapster 进行了裁剪,去掉sink和数据保存,转化成了 metrics-servermetrics Serv...原创 2020-03-31 20:21:42 · 329 阅读 · 0 评论 -
CNCF Probes and Status学习笔记
Pod phase1 Pending :The Pod has been accepted by the Kubernetes system, but one or more of the Container images has not been created. This includes time before being scheduled as well as time spent d...原创 2020-03-31 05:53:03 · 422 阅读 · 0 评论 -
CNCF Persistent Volumes 学习
PV/PVC1 (PV) is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes2 (PVC) is a request for storage by a user3 PVC 消费者-P...原创 2020-03-30 20:33:19 · 185 阅读 · 0 评论 -
CNCF configmap及Secrets 学习笔记
configmap创建configmap 模式kubectl create configmap -fromdirectories:每个文件作为一个data itemfiles:每个文件作为一个data item增加key 输入参数,将替换文件名称:kubectl create configmap game-config-from-files-with-key --from-file=g...原创 2020-03-30 20:30:15 · 143 阅读 · 0 评论