关键词:
上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。
安装 Pod 网络
要让 Kubernetes Cluster 能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信。
Kubernetes 支持多种网络方案,这里我们先使用 flannel,后面还会讨论 Canal。
执行如下命令部署 flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
添加 k8s-node1 和 k8s-node2
在 k8s-node1 和 k8s-node2 上分别执行如下命令,将其注册到 Cluster 中:
kubeadm join --token d38a01.13653e584ccc1980 192.168.56.105:6443
这里的 --token
来自前面 kubeadm init
输出的第 ⑨ 步提示,如果当时没有记录下来可以通过 kubeadm token list
查看。
kubeadm join
执行如下:
根据提示,我们可以通过 kubectl get nodes
查看节点的状态。
目前所有节点都是 NotReady
,这是因为每个节点都需要启动若干组件,这些组件都是在 Pod 中运行,需要首先从 google 下载镜像,我们可以通过如下命令查看 Pod 的状态:
kubectl get pod --all-namespaces
Pending
、ContainerCreating
、ImagePullBackOff
都表明 Pod 没有就绪,Running
才是就绪状态。我们可以通过 kubectl describe pod <Pod Name>
查看 Pod 具体情况,比如:
kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system
为了节省篇幅,这里只截取命令输出的最后部分,可以看到在下载 image 时失败,如果网络质量不好,这种情况是很常见的。我们可以耐心等待,因为 Kubernetes 会重试,我们也可以自己手工执行 docker pull
去下载这个镜像。
等待一段时间,image 都成功下载后,所有 Pod 会处于 Running
状态。
这时,所有的节点都已经 Ready
,Kubernetes Cluster 创建成功,一切准备就绪。
小结
本章通过 kubeadm 部署了三节点的 Kubernetes 集群,后面章节我们都将在这个实验环境中学习 Kubernetes 的各项技术。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
部署helm-每天5分钟玩转docker容器技术(162)
本节我们将安装和部署Helm客户端和Tiller服务器。Helm客户端通常,我们将Helm客户端安装在能够执行 kubectl 命令的节点上,只需要下面一条命令:curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash执行... 查看详情
部署instance到vxlan-每天5分钟玩转openstack(112)
650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161113-1479026488351033984.jpg"/>上一节我们创建了vxlan100_net,今天将部署instance并分析网络的连通性。launch新的instance“cirros-vm1”,网络选择vxla 查看详情
创建ovsvlan101并部署instance-每天5分钟玩转openstack(139)
650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170117-1484631962605036171.jpg"/>前面我们创建了OVSvlan100并部署了instance,今天继续创建vlan101。650)this.width=650;"src="http://7xo6k 查看详情
如何快速部署prometheus?-每天5分钟玩转docker容器技术(85)
上一节介绍了 Prometheus的核心,多维数据模型。本节演示如何快速搭建Prometheus监控系统。环境说明我们将通过Prometheus监控两台DockerHost:192.168.56.102和192.168.56.103,监控host和容器两个层次的数据。按照架构图,我们需要运行如... 查看详情
部署graylog日志系统-每天5分钟玩转docker容器技术(92)
Graylog是与ELK可以相提并论的一款集中式日志管理方案,支持数据收集、检索、可视化Dashboard。本节将实践用Graylog来管理Docker日志。Graylog架构Graylog架构如下图所示:650)this.width=650;"title="https://image.ipaiban.com/upload-ueditor-image-20171109-... 查看详情
部署instance到vxlan-每天5分钟玩转openstack(112)
上一节我们创建了vxlan100_net,今天将部署instance并分析网络的连通性。launch新的instance“cirros-vm1”,网络选择vxlan100。cirros-vm1分配到的IP为172.16.100.3。cirros-vm1被schedule到控制节点,对应的tap设备为tap099caa87-cd,并且连接到bridgebrq176... 查看详情
再部署一个instance和localnetwork-每天5分钟玩转openstack(131)
650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161227-1482841777873097679.jpg"/>上一节部署了cirros-vm1到first_local_net,今天我们将再部署cirros-vm2到同一网络,并创建second_local_net。连接第二 查看详情
创建ovsvlan101并部署instance-每天5分钟玩转openstack(139)
前面我们创建了OVSvlan100并部署了instance,今天继续创建vlan101。subnetIP地址为172.16.101.0/24。底层网络发生了什么变化Neutron自动在br-int网桥上创建了vlan100dhcp的接口“tap1820558c-0a”。现在,网络结构如下:将instance连接到vlan101launch新... 查看详情
chart目录结构-每天5分钟玩转docker容器技术(164)
...包格式。chart由一系列文件组成,这些文件描述了Kubernetes部署应用时所需要的资源,比如Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap等。单个的chart可以非常简单,只用于部署一个服务,比如Memcached;chart也可以很复杂,部... 查看详情
再部署一个instance和localnetwork-每天5分钟玩转openstack(131)
上一节部署了cirros-vm1到first_local_net,今天我们将再部署cirros-vm2到同一网络,并创建second_local_net。连接第二个instance到first_local_net以同样的方式launchinstance“cirros-vm2”,分配的IP为172.16.1.4。cirros-vm2也被schedule到控制节点,ovs-vsctls... 查看详情
elk完整部署和使用-每天5分钟玩转docker容器技术(90)
上一节已经部署了容器化的ELK,本节讨论如何将日志导入ELK并进行图形化展示。几乎所有的软件和应用都有自己的日志文件,容器也不例外。前面我们已经知道Docker会将容器日志记录到 /var/lib/docker/containers/<contarinerID>/<... 查看详情
elk完整部署和使用-每天5分钟玩转docker容器技术(90)
上一节已经部署了容器化的ELK,本节讨论如何将日志导入ELK并进行图形化展示。几乎所有的软件和应用都有自己的日志文件,容器也不例外。前面我们已经知道Docker会将容器日志记录到 /var/lib/docker/containers/<contarinerID>/<... 查看详情
如何部署calico网络?-每天5分钟玩转docker容器技术(67)
Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来。与VxLAN不同的是,Calico不对数据包做额外封装,不需要NAT和端口映射,扩展性和性能都很好。与其他容器网络方案相... 查看详情
rollingupdate-每天5分钟玩转docker容器技术(140)
...始终有副本在运行,从而保证了业务的连续性。下面我们部署三副本应用,初始镜像为httpd:2.2.31,然后将其更新到httpd:2.2.32。httpd:2.2.31的配置文件如下:通过 kubectlapply 部署。部署过程如下:创建Deployme 查看详情
每天5分钟玩转容器技术整理目录
原 写在最前面-每天5分钟玩转容器技术(1)容器生态系统-每天5分钟玩转容器技术(2) 容器生态系统(续)-每天5分钟玩转容器技术(3)运行第一个容器-每天5分钟玩转容器技术(4)【视频】运行第一个容器-每天5分钟玩... 查看详情
如何使用stack?-每天5分钟玩转docker容器技术(112)
...好了stackYAML文件,就可以通过 dockerstackdeploy 命令部署应用。Docker会按照YAML的内容来创建各种资源。为了不重名,所有资源都会加上stack名称作为前缀,我们这里是 wpstack_*。部署完成后可以通过相关命令查看各种资源... 查看详情
healthcheck-每天5分钟玩转docker容器技术(142)
...机制设置更精细的健康检查,进而实现如下需求:零停机部署。避免部署无效的镜像。更加安全的滚动升级。下面通过实践学习Kubernetes的HealthCheck功能。默认的健康检查我们首先学习Kubernetes默认的健康检查机 查看详情
《每天5分钟玩转容器技术》(转)
《每天5分钟玩转容器技术》《每天5分钟玩转容器技术》 查看详情