随笔分类 - docker - kubernetes-openshift
摘要:1.kubectl logs -f coredns-99b9bb8bd-47mvf -n kube-system 从这篇文章得到提示,coredns pod会取宿主机的/etc/resolv.conf里面定义的nameserver作为自己的upstream server。而ubuntu的这个文件定义
阅读全文
摘要:主机 1.这一步没做,实验也可以成功: 防火墙和网络设置,所有的主机都执行以下命令: [dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7enabled=1gpgcheck
阅读全文
摘要:1.[root@dev-100 Desktop]# docker login -u clouder -p engine harbor.xiaowei.com 2.docker tag busybox:latest harbor.xiaowei.com/lib/xiaoweibusybox:lates
阅读全文
摘要:1.如果不关闭swap,就会在kubeadm初始化Kubernetes的时候报错,如下图: $ ansible -i inventory/inventory.cfg all -a "swapoff -a"$ ansible -i inventory/inventory.cfg all -a "sud
阅读全文
摘要:1.calico node 容器在kubernetes中以DaemonSet 的方式运行,容器的网络模式为hostNetwor,与host共享网络栈,拥有相同的Ip和hostname 2.查看某个pod:[root@bserver40 ~]# kubectl get pods -o wide -n
阅读全文
摘要:1.用kubespray部署一个单节点集群,kubectl get pods -n kube-system,结果: calico-node-7v8wx 1/1 Running 0 2dcalico-node-c7cv8 1/1 Running 0 2d 但是: kube-dns-7cdf4f69c7
阅读全文
摘要:1.可以通过给Pod增加 kubernetes.io/ingressbandwidth和 kubernetes.io/egress-bandwidth 这两个annotation来限制Pod的网络带宽 目前只有kubenet网络插件支持限制网络带宽,其他CNI网络插件暂不支持这个功能。 在Pod的a
阅读全文
摘要:1.vxlan(virtual Extensible LAN)虚拟可扩展局域网,是一种overlay的网络技术,使用MAC in UDP的方法进 行封装,共50字节的封装报文头。 2.VTEP为虚拟机的数据包加上了层包头,这些新的报头之有在数据到达目的VTEP后才会被去掉。 3.由于VXLAN的数据
阅读全文
摘要:1.详述kube-proxy原理,一个请求是如何经过层层转发落到某个pod上的整个过程。请求可能来自pod也可能来自外部。 1.1kube-proxy为集群提供service功能,相同功能的pods对外抽象为service,service 可以实现反向代理和服务发现。可以分为iptables模式和u
阅读全文
摘要:1.在命令式API中,你可以直接发出服务器要执行的命令,例如: “运行容器”、“停止容器”等。 在声明性API中,你声明系统要执行的操作,系统将不断向该状态驱动。可以想象成手动驾驶和自动驾驶系统。(多了会删除,少了会自动增加) 因此,在Kubernetes中,你创建一个API对象(使用CLI或RES
阅读全文
摘要:1.statefulset.yaml apiVersion: apps/v1kind: StatefulSetmetadata: name: webspec: serviceName: "nginx" replicas: 2 selector: matchLabels: app: nginx tem
阅读全文
摘要:DaemonSet 配置文件的语法和结构与 Deployment 几乎完全一样,只是将 kind 设为 DaemonSet。 选择运行节点:当指定.spec.template.spec.nodeSelector,DaemonSet将会在匹配的节点上创建pod。 如果都没有指定,DaemonSet在所
阅读全文
摘要:1.Failed -- pod里至少一个容器以非0code退出,说明应用有问题,需要debug应用容器 2.pending -- 说明API对象已经被创建和保存在etcd数据库里,但是创建过程出了问题,可能是image pull 出问题,也可能是调度出了问题 3.Unknow -- 说明pod的状态
阅读全文
摘要:1. spec: containers: - name: example resources: requests: cpu: 100m memory: 64Mi limits: cpu: 200m memory: 128Mi 例如,一个带有3个容器的pod,每个容器请求0.1核CPU和64MB内存(
阅读全文
摘要:1.分析 查看源代码 既然无法建立连接,那先看下是如何建立连接的。登录到myweb的docker容器里面,查看index.jsp文件,主要内容如下: Class.forName("com.mysql.jdbc.Driver").newInstance();try{ Class.forName("co
阅读全文
摘要:1.当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本。 其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信
阅读全文
摘要:1.taint 定义在node上,排斥pod 2.toleration定义在pod中,容忍pod 3.可以在命令行为Node节点添加Taints: kubectl taint nodes node1 foo=bar:NoSchedule 4.在pod的定义文件spec中加入tolerations,
阅读全文
摘要:1.cpu docker run -it --cpu-period=100000 --cpu-quota=2000 ubuntu /bin/bash 相当于只能使用20%的CPU 在每个100ms的时间里只能使用20ms的计算时间 2.内存 $ docker run -m 1G ubuntu:16.
阅读全文
摘要:1.根据 https://github.com/cookeem/kubeadm-ha/blob/master/README_CN.md 去搭建ha集群,遇到几个问题: runtime network not ready: NetworkReady=false reason:NetworkPlugin
阅读全文
摘要:使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储。 Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common 1. 为kubernetes创建一个存储池 2. 创建用户 k8s用户只能对k8
阅读全文