上篇博客介绍了容器如何访问网络,今天讨论另一个方向:外部网络如何访问到容器? 答案是:端口映射。
docker 可将容器对外提供服务的端口映射到 host 的某个端口,外网通过该端口访问容器。容器启动时通过-p参数映射端口:
[root@www ~]# docker run -itd -p 80 nginx
9818886ac111489d4a4364047be2fccaedd0d94650056504c0238d84a00158c2
[root@www ~]# d...
/
560 次浏览/
容器虚拟化
讨论容器如何与外部世界通信。这里涉及两个方向:
容器访问外部世界
外部世界访问容器
容器访问外部世界
在我们当前的实验环境下,docker host 是可以访问外网的。
[root@localhost ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (18...
/
486 次浏览/
容器虚拟化
如果 Kubernetes 部署在诸如 AWS、GCE、Azure 等公有云上,可以直接使用云硬盘作为 Volume,下面是 AWS Elastic Block Store 的例子:
要在 Pod 中使用 ESB volume,必须先在 AWS 中创建,然后通过 volume-id 引用。其他云硬盘的使用方法可参考各公有云厂商的官方文档。
Kubernetes Volume 也可以使用主流的分布式存,比如 Ceph、GlusterFS 等,下面是 Ceph 的例子:...
/
489 次浏览/
容器虚拟化
kubernetes存储管理按照发展的历程,涉及到有Volume,PV(Persistent Volume)和PVC(PersistentVolumeClaims),和StorageClass,Volume是最早提出的存储卷,主要解决容器和数据存储的依赖关系,抽象底层驱动以支持不同的存储类型;使用Volume需要了解底层存储细节,因此提出了PV,Persistent Volume是由k8s管理员定义的存储单元,应用端使用PersistentVolumeClaims声明去调...
/
452 次浏览/
容器虚拟化
利用kubernetes的滚动更新时,可能经常遇到发布“太快不稳定”或“太慢体验差”的情况。本文将介绍kubernetes滚动更新控制速率的特性。
金丝雀发布
金丝雀发布这个术语源自20世纪初期,当时英国的煤矿工人在下井采矿之前,会把笼养的金丝雀携带到矿井中,如果矿井中一氧化碳等有毒气体的浓度过高,在影响矿工之前,金丝雀相比人类表现的更加敏感快速,金丝雀中毒之后,煤矿工人就知道该立刻撤离。金丝雀发布是在将整个软件的新版本发布给所有用户之前,先发布给部分用户,用...
/
638 次浏览/
容器虚拟化
Secret 存在意义
K8s configmap可以注入pod之内成为环境变量或者是配置文件,这些都是以明文方式保存,如果碰到密码这种的以明文方式保存就不行了,Secret更加倾向于保存要加密的文件。
Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。Secret 可以以 Volume 或者环境变量的方式使用。密码这种可以先存储到secret里面,然后挂载到Pod里面即可。
Sec...
/
608 次浏览/
容器虚拟化
前面的例子中,我们提前创建了 PV,然后通过 PVC 申请 PV 并在 Pod 中使用,这种方式叫做静态供给(Static Provision)。
与之对应的是动态供给(Dynamical Provision),即如果没有满足 PVC 条件的 PV,会动态创建 PV。相比静态供给,动态供给有明显的优势:不需要提前创建 PV,减少了管理员的工作量,效率高。
动态供给是通过 StorageClass 实现的,StorageClass 定义了如何创建 PV,下面是两个例子。...
/
563 次浏览/
容器虚拟化
PV静态供给明显的缺点是维护成本太高了!因此,K8s开始支持PV动态供给,使用StorageClass对象实现。
Storgess帮你创建pvc,只需要在pvc里面定义使用哪个storgeclass,storgess可以标志使用什么存储比如nfs ceph。 并不是所有存储支持storgess,有的需要插件
支持动态供给的存储插件:https://kubernetes.io/docs/concepts/storage/storage-classes/...
/
777 次浏览/
容器虚拟化
在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。
以kubectl为例介绍kubeconfig的配置。kubectl只是个go编写的可执行程序,只要为kubectl配置合适的kubeconfig,就可以在集群中的任意节点使用。kubectl默认会从$HOME/.kube目录下查找文件名为 config 的文件,也可以通过设置环...
/
561 次浏览/
容器虚拟化
前言
本篇文章介绍 k8s集群中部署 prometheus、grafana、alertmanager,并且配置 prometheus 的动态、静态服务发现,实现对容器、物理节点、service、pod 等资源指标监控,并在Grafana 的 web界面展示 prometheus 的监控指标,然后通过配置自定义告警规则,通过 alertmanager 实现 qq、钉钉、微信报警。
Prometheus 监控工具介绍
Prometheus是一个最初在SoundC...
/
551 次浏览/
容器虚拟化