23|视频:中级篇实操总结
一. 安装 kubeadm
- 2.0x
- 1.5x
- 1.25x
- 1.0x
- 0.75x
- 0.5x
- 深入了解
- 翻译
- 解释
- 总结
本文以视频形式呈现,通过实际演示展示了使用kubeadm搭建多节点Kubernetes集群,以及学习Deployment、DaemonSet、Service、Ingress等API对象的具体用法。文章首先介绍了安装kubeadm的过程,包括改主机名、改Docker配置、改网络设置、改交换分区等准备工作,然后演示了kubeadm的安装和Kubernetes的初始化过程。接着,文章展示了Kubernetes集群的部署过程,包括Master节点和Worker节点的安装以及节点状态的检查。随后,文章详细介绍了Deployment和DaemonSet的使用方法,包括生成样板文件、创建对象、查看状态以及应用伸缩功能等操作。接着,文章介绍了Service的使用,包括创建Service对象、验证Service代理后端Pod、使用NodePort方式对外暴露服务等。最后,文章讲解了Ingress的使用,包括创建Ingress对象、关联Ingress Class、定义路由规则等。最后,文章通过搭建WordPress网站的实际操作展示了Deployment、Service、Ingress等对象的用法。整体而言,本文通过实际操作演示了Kubernetes中级篇的内容,为读者提供了一手的操作指南和技术实践经验,具有很高的参考价值。
《Kubernetes 入门实战课》,新⼈⾸单¥59
全部留言(17)
- 最新
- 精选
- YueShi1、推荐之前的课程全都自己完成一遍,然后在看这个实战视频,就有点查漏补缺的味道了,看的很轻松 2、关于楼上同学“按道理应该是进入Service”的困惑,有感,K8S的基本思想就是组合和适配器模式,在k8s里感觉万物皆可组合,如果不能满足,基于现有的api在适配出一个api出来,组合和适配在k8s里是互逆的 3、同志们继续学呀,在坚持学一节,就甩掉了很多人,加油💪💪💪💪
作者回复: very nice!
2022-08-14归属地:北京9 - 小江爱学术老师问个问题呀 kubectl get deploy kubectl get svc kubectl get pod -n nginx-ingress 从这里可以看出应用的deploy以及svc是在default命名空间下的,ingress是在自己的nginx-ingress命名空间下,他们在k8s中不属于一个命名空间。但是在ingress rule的配置里,关于backend的配置直接用的service的名字,是因为如果这里不提供具体的命名空间的名字,他会自动认为是default吗。谢谢。
作者回复: 是的,如果不写具体的名字空间,默认就是default。
2022-10-08归属地:北京3 - 花花大脸猫遇到个奇怪的问题,在node节点执行kubeadm join的时候,都会卡死,然后通过--v=5,发现连接master一直拒绝:I0816 23:05:48.343080 5359 token.go:217] [discovery] Failed to request cluster-info, will try again: Get "https://10.0.3.15:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": dial tcp 10.0.3.15:6443: connect: connection refused,看解决方案有说在kubeadm init的时候需要指定(108是我node节点的虚拟机IP)--apiserver-cert-extra-sans 192.168.56.108 --apiserver-advertise-address 192.168.56.108 \,凌乱了
作者回复: 首先保证kubeadm的版本正确,然后记得token也要正确,好像token是有时效的,过期了就要重新生成。
2022-08-16归属地:北京23 - peter请教老师几个问题: Q1:“kubeadm join”命令里的token的时效性没有起作用。 讲kubeadm的时候,提到:“kubeadm join”命令里的token有时效性,默认是24小时。 但是,我的集群环境创建成功后,master虚拟机启动后k8s自动运行,worker虚拟机启动后自动 连接到master,一个多星期了还是这样,好像token永远不会过期,为什么? Q2:是否需要清理环境,有一键清除的命令吗? 老师的视频,每一个视频的环境都是干净的,和其他视频无关。 而我的操作不是这样。我的操作是:每一讲都在同一个集群环境中操作,操作之前也没有清理 以前的东西,比如以前创建的POD、deploy等都存在。这种操作方法不好吧,应该清理吧。 如果需要清理,有一键清除的命令吗?还是需要逐个删除?比如逐个查看cm、ds、POD等。 Q3:Service代理POD后,用exec进入POD,再用curl访问。 请问:为什么是进入POD,Service代理POD,按道理应该是进入Service呀。 Q4:删除service的时候,也必须删除deploy吗? 视频中的删除方法是: kubectl delete -f deploy.yml -f svc.yml, 有两个子问题: 第一,这里的deploy.yml应该是对应svc.yml吧,就是说svc.yml创建的service, 代理的POD是由deploy.yml创建出来的,对吧。 另外,可以只删除service而不删除service代理的POD吗? Q5:两种删除方法都可以吗? 第一种:kubectl delete delploy xxx 第二种:kubctl delete -f deploy.yml 第一种方法中的xxx是第二种方法中的 deploy.yml创建出来的。 这两种方法都可以吗? 而且,好像所有的对象都有这两种删除方法。
作者回复: 1.应该是有时效的,现在也许变了?不确定。 2.如果都是用YAML 部署的,可以用“delete -f . ”来删除所有对象。 3.因为域名、IP地址都是在Kubernetes里的,外界访问不了,进pod就可以了。Service是个虚地址,无法进入,只有pod是实体。 4.不必要,Service和Deployment是彼此独立的,我是为了省事连续删除。 5.当然可以,本质上是一样的,都是找到相应的pod。
2022-08-12归属地:北京22 - 牙小木如果忘了了master的join 信息也没关系,可以执行 kubeadm token create --print-join-command 如果没有信息,或者过期了,可以执行 kubeadm token create
作者回复: great
2023-07-28归属地:北京1 - Greenery老师,这个wp-kic中的service是什么作用的?我访问30080端口显示nginx404...
作者回复: 给Ingress controller暴露对外的服务端口,404是不是Ingress没有配置好。
2023-06-25归属地:中国香港1 - 吃鸡吃鸡如果Ingress Controller的service换成云厂商slb/alb,那么入口服务发现能的重任就在负载均衡了
作者回复: yes
2023-04-07归属地:北京1 - 农民园丁八. 搭建 WordPress 网站 访问http://wp.test/进入安装页面,但是之后登录浏览器显示跳转到以下连接时: http://wp.test/wp-login.php?redirect_to=http%3A%2F%2Fwp.test%2Fwp-admin%2F&reauth=1 没有登录,还是停在登录界面,用户名和密码都输对了。 请教这是上面问题? 还有就是宿主机的hosts将wp.host与其中1个节点绑定,还是任意1个节点都可以,实验发现好像只能绑定其中1个节点。
作者回复: 这个好像是WordPress程序跳转的原因,不了解它的用法,所以不知道改怎么解决。 好在不影响我们学习Kubernetes,只要WordPress跑起来,就证明Kubernetes部署成功,剩下是应用层面的问题。
2023-01-14归属地:内蒙古1 - 无为老师您好, 您的课程非常的易学. 我有一个问题, 我本地的 kubeadm 并没有使用docker images 的镜像, 是我漏了什么步骤吗?
作者回复: 感觉问题没有太说清楚,没能理解,sorry。 kubeadm安装是必须要拉取镜像的,如果能直接访问gcr.io,就可以不用脚本,直接kubeadm自己就能拉取镜像安装了。
2022-12-04归属地:北京21 - MonsterCaleworker节点kubeadm join之后,worker节点上kubectl get nodes能看到master、worker节点都Ready了,master节点kubectl get nodes只能看到master节点看不到worker节点,这是为什么
作者回复: 这个不应该啊,把worker删除重装试试吧。
2022-10-09归属地:北京1