date: 2019-07-29
tags: kubernetes container
实习过程中自告奋勇要帮着搞kubernetes,结果发现这个东西有点恶心...在这里总结一下基础知识,省的好不容易看的东西忘了~
Kubernetes的基本结构
Kubernetes主要有两种resources(为啥叫资源...):
部署的时候,让master去运行application containers,master会把container schedule给某一个node,这两者之间的沟通是用的Kubernetes API。用户和cluster交互也是用的这个。
Pod是Kubernetes的基本单元。其包含一个或多个容器,在一个pod中的容器会共享volume,network,并且pod里包含了如何运行这些container的指令啥的。pod会被绑定到一个node上到死。如果node死了,会新建一个同样状态的新pod部署到其他的cluster上。
因为Pod是会死的嘛(mortal),所以如果要让用户没有感觉,就需要更高的一层抽象。service就是这样的抽象。service用哪些pod一般使用LabelSelector决定的。尽管每个node有自己的IP,但这个IP只有cluster内部才能访问。而要用service来开放出IP来。
也是因为这个作用,service会有不同的种类:
<NodeIP>:<NodePort>
. Superset of ClusterIP.externalName
in the spec) by returning a CNAME record with the name. No proxy is used. This type requires v1.7 or higher of kube-dns
.service要用label来限制