李明
|
部署Scheduler(主节点) 简介 kube-scheduler负责分配调度Pod到集群内的节点上,它监听kube-apiserver,查询还未分配Node的Pod,然后根据调度策略为这些Pod分配节点。我们前面讲到的kubernetes的各种调度策略就是它实现的。 部署 通过系统服务方式部署 cp ~/kubernetes-starter/target/master-node/kube-scheduler.service /lib/systemd/system/ systemctl enable kube-scheduler.service service kube-scheduler start journalctl -f -u kube-scheduler
重点配置说明 vi /lib/systemd/system/kube-scheduler.service
PS:最重要的三个核心组件就部署完了 , 部署CalicoNode(所有节点)
简介 Calico实现了CNI接口,是kubernetes网络方案的一种选择,它一个纯三层的数据中心网络方案(不需要Overlay),并且与OpenStack、Kubernetes、AWS、GCE等IaaS和容器平台都有良好的集成。Calico在每一个计算节点利用Linux Kernel实现了一个高效的vRouter来负责数据转发,而每个vRouter通过BGP协议负责把自己上运行的workload的路由信息像整个Calico网络内传播——小规模部署可以直接互联,大规模下可通过指定的BGP route reflector来完成。 这样保证最终所有的workload之间的数据流量都是通过IP路由的方式完成互联的。 部署 calico是通过系统服务+docker方式完成的 cp ~/kubernetes-starter/target/all-node/kube-calico.service /lib/systemd/system/ systemctl enable kube-calico.service service kube-calico start journalctl -f -u kube-calico
查看配置 vi /lib/systemd/system/kube-calico.service
calico可用性验证 查看容器运行情况 docker ps
查看节点运行情况 calicoctl node status
查看端口BGP 协议是通过TCP 连接来建立邻居的,因此可以用netstat 命令验证 BGP Peer netstat -natp|grep ESTABLISHED|grep 179 查看集群ippool情况[主节点] calicoctl get ipPool -o yaml
5.4 重点配置说明
配置kubectl命令(主节点) 简介 kubectl是Kubernetes的命令行工具,是Kubernetes用户和管理员必备的管理工具。kubectl提供了大量的子命令,方便管理Kubernetes集群中的各种功能。 初始化 使用kubectl的第一步是配置Kubernetes集群以及认证方式,包括:
我们这没有安全相关的东西,只需要设置好api-server和上下文就好啦: #指定apiserver地址(ip替换为你自己的api-server地址)kubectl config set-cluster kubernetes --server=http://192.168.66.101:8080#指定设置上下文,指定clusterkubectl config set-context kubernetes --cluster=kubernetes#选择默认的上下文kubectl config use-context kubernetes
配置kubelet(工作节点102,103这2两台机器) 简介 每个工作节点上都运行一个kubelet服务进程,默认监听10250端口,接收并执行master发来的指令,管理Pod及Pod中的容器。每个kubelet进程会在API Server上注册节点自身信息,定期向master节点汇报节点的资源使用情况,并通过cAdvisor监控节点和容器的资源。 部署 通过系统服务方式部署,但步骤会多一些,具体如下: #确保相关目录存在mkdir -p /var/lib/kubelet mkdir -p /etc/kubernetes mkdir -p /etc/cni/net.d#复制kubelet服务配置文件cp ~/kubernetes-starter/target/worker-node/kubelet.service /lib/systemd/system/#复制kubelet依赖的配置文件cp ~/kubernetes-starter/target/worker-node/kubelet.kubeconfig /etc/kubernetes/#复制kubelet用到的cni插件配置文件cp ~/kubernetes-starter/target/worker-node/10-calico.conf /etc/cni/net.d/ systemctl enable kubelet.service service kubelet start journalctl -f -u kubelet
主节点查看node的信息 kubectl get nodes
重点配置说明 kubelet.service
kubelet.kubeconfig kubelet依赖的一个配置,格式看也是我们后面经常遇到的yaml格式,描述了kubelet访问apiserver的方式
calico.conf calico作为kubernets的CNI插件的配置 { "name": "calico-k8s-network", "cniVersion": "0.1.0", "type": "calico", <!--etcd的url--> "ed_endpoints": "http://192.168.1.102:2379", "logevel": "info", "ipam": { "type": "calico-ipam" }, "kubernetes": { <!--api-server的url--> "k8s_api_root": "http://192.168.1.102:8080" } } PS:每次安装都需要看日志的,老铁不要认为看日志麻烦,看日志其实是为了避免后续的问题存在,走一步稳一步!后续在出现问题了,就更麻烦。下次老铁我们一起在这个集群上面做下测试和练习。
|
2019-02-21 09:57:33