k8s 心得

更多kubernetes文章:k8s专栏目录

版本  1.9.0

安装:
我们通过kubeadm工具安装,安装些基本组件 如 kubeadm kubectl kubelet,其他通过kubeadm配置启动,具体在kubeadm init的时候都会打印出来,可以看到。
单独安装docker,并且k8s对docker兼容的版本有限制,并不支持最近的docker版本。k8s会支持不仅一种容器,不仅是docker。

组件作用:
kubeadm 用来master初始化集群 node加入集群 
kubectl 脚本命令包 用来对集群操作的,授权之后就可以对集群操作了。可以用root 非root用户操作。可以在master机器(默认)上授权操作。猜测也可以在node机器,集群外机器(接口机)上授权操作。
kubelet 每台节点都要安装,集成了cAdvisor,收集本机信息,node与master通信。

kubeadm在初始化集群时还会通过docker启动一些服务,master独有etcd,apiserver,kube-controller-manager,kube-scheduler,kube-dns。每台机器上都会启动kube-proxy。如果使用了flannel网络的话,还有kube-flannel。其他网络应该是对应其他网络服务容器。
master是可以HA的。
etcd用于存储k8s信息
apiserver 是api中心,https restful api和kubectl命令应该都访问这里
kube-controller-manager
kube-scheduler
kube-dns

kube-proxy kube-flannel 用于实现虚拟网络。容器分配ip是在kube-flannel上。其他服务端口转发,服务ip应该都是靠这些服务来支持的。

nvidia-device-plugin,是容器中使用gpu使用的。看起来只起在node节点上,可能master需要再找一台机器,不要浪费gpu资源。

NAME                                      READY     STATUS    RESTARTS   AGE       IP               NODE
po/etcd-tensorflow0                       1/1       Running   0          5h        192.168.163.11   tensorflow0
po/kube-apiserver-tensorflow0             1/1       Running   0          5h        192.168.163.11   tensorflow0
po/kube-controller-manager-tensorflow0    1/1       Running   0          5h        192.168.163.11   tensorflow0
po/kube-dns-6f4fd4bdf-pk4d5               3/3       Running   0          5h        172.17.0.2       tensorflow0
po/kube-flannel-ds-bzxfk                  1/1       Running   0          5h        192.168.163.11   tensorflow0
po/kube-flannel-ds-d5g44                  1/1       Running   0          5h        192.168.163.13   tensorflow2
po/kube-flannel-ds-t74hh                  1/1       Running   0          5h        192.168.163.12   tensorflow1
po/kube-proxy-fs58k                       1/1       Running   0          5h        192.168.163.11   tensorflow0
po/kube-proxy-jmk45                       1/1       Running   0          5h        192.168.163.12   tensorflow1
po/kube-proxy-p5r9w                       1/1       Running   0          5h        192.168.163.13   tensorflow2
po/kube-scheduler-tensorflow0             1/1       Running   0          5h        192.168.163.11   tensorflow0
po/kubernetes-dashboard-58f5cb49c-z4pbk   1/1       Running   0          5h        10.244.1.2       tensorflow1
po/nvidia-device-plugin-daemonset-4rbj2   1/1       Running   0          4h        10.244.2.2       tensorflow2
po/nvidia-device-plugin-daemonset-nscfk   1/1       Running   0          4h        10.244.1.3       tensorflow1


监控:
cAdvisor+Heapster+InfluxDB+Grafana
cAdvisor是自带监控,集成进了 kubelet,采集每台机器的信息
Heapster是容器集群监控和性能分析工具。
InfluxDB作为后端存储
Grafana作为前端界面展示。

dashboard 可选组件,k8s配套界面,可以查看很多集群,节点,容器信息,进行操作等等。可能通过restful api访问apiserver实现的。需要授权才能访问。
dashboard没有默认没有机器状态的信息,支持通过安装Heapster来显示监控信息。

以上都可以通过容器启动




权限管理:
1.6新增RBAC授权。简单来说就是权限--角色--用户的管理关系。
k8s 心得_第1张图片


初始化时就创建了不少规则,所以可以集群操作。其他更多的个性化的权限就要自定义权限来管理了。通过创建角色,权限绑定关系等等来实现。权限可以通过token来授权,也可以通过账号密码来授权。














你可能感兴趣的:(kubernetes,kubernetes实践)