部署k8scluster(下)-每天5分钟玩转docker容器技术(119)

author author     2022-10-09     518

关键词:

上节我们通过 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

技术分享图片

PendingContainerCreatingImagePullBackOff 都表明 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分钟玩转容器技术》 查看详情