视频教程连接:
本章是第二篇,要深入学习kubernetes,首先需要有一个k8s环境,然而,受制硬件环境,网络环境等因素,要搭建一个环境有一定的困难,让很多初学者望而却步,本章主要介绍通过kubeadm安装工具部署kubernetes集群,考虑到国内网络限制,已将安装镜像通过跳板机下载到本地,方便大家离线安装。
要学习kubernetes,首先需要有一个kubernetes集群,社区为了满足不同场景下,提供了不同的安装方法以适应各种场景需求,常见方法有:
对于学习环境,Katacoda提供了一个在线的MiniKube环境,只需在控制台启用即可使用,当然也可以将MiniKube下载到本地使用。对于生产环境,推荐使用二进制安装或者Kubeadm,新版kubeadm目前已将kubernetes管理组件以pod的形式部署在集群中,不管用哪种方式,受限于GFW,大部分镜像下载,大家自行补脑和解决,本文以离线的方式安装部署,根据安装版本下载对应的安装镜像倒入系统即可。
Katacoda使用MiniKube提供了一个在线部署kubernetres环境,当然也可以基于MiniKube本地安装,如果是初学者想初探一下kubernetes的功能,可以使用Katacoda提供的线上环境,达到快速入门学习的目的。参考文档,直接在文档中点击Open terminal即可自动创建一个kubernetes环境,其会自动拉取镜像并部署所需环境。
如上图所示,MiniKube的提供的优点如下:
【软件版本】
【环境说明】
三台机器均为腾讯云上购买的CVM(Cloud Virtual Machine),机器配置是2vcpu+4G memory+50G disk
【环境准备】
1、设置主机名,其他两个节点类似设置
2、设置hosts文件,其他两个节点设置相同内容
3、设置SSH无密码登录,并通过ssh-copy-id将公钥拷贝到对端
4、关闭防火墙和SElinux
1、下载docker的yum源
2、设置cgroup driver类型为systemd
3、启动docker服务并验证,可以通过docker info查看docker安装的版本等信息
备注:如果机器不具备上网条件,或者访问docker的yum源仓库很慢,我已将docker相关rpm包依赖包下载到腾讯云cos中,,可以下载到本地,然后解压缩然后运行yum localinstall进行安装。
1、安装kubernetes源,国内可以使用阿里的kubernetes源,速度会快一点
2、安装kubeadm,kubelet,kubectl,会自动安装几个重要依赖包:socat,cri-tools,cni等包
3、设置iptables网桥参数
4、重新启动kubelet服务,使配置生效
备注:如果本地下载很慢或者无法下载kubernetes中yum源rpm包,可以通过离线方式下载,
1、从cos中下载kubernetes安装镜像,并通过docker load命令将镜像导入到环境中
2、检查镜像列表
1、 kubeadm初始化集群,需要设置初始参数
通过kubeadm init --apiserver-advertise-address 10.254.100.101 --apiserver-bind-port 6443 --kubernetes-version 1.14.1 --pod-network-cidr 10.244.0.0/16安装命令,显示了kubeadm安装过程中的一些重要步骤:下载镜像,生成证书,生成配置文件,配置RBAC授权认证,配置环境变量,安装网络插件指引,添加node指引配置文件。
2、生成kubectl环境配置文件
3、添加node节点,将另外两个节点加入到集群中,复制上述的添加节点命令到指定节点添加即可。
4、安装网络plugin,kubernetes支持多种类型网络插件,要求网络支持CNI插件即可,CNI是Container Network Interface,要求kubernetes的中pod网络访问方式:
不同的CNI plugin支持的特性有所差别。kubernetes支持多种开源的网络CNI插件,常见的有flannel、calico、canal、weave等,flannel是一种overlay的网络模型,通过vxlan隧道方式构建tunnel网络,实现k8s中网络的互联,后续在做介绍,如下是安装过程:
5、通过上述输出可知道,部署flannel 需要RBAC授权,配置configmap和daemonset,其中Daemonset能够适配各种类型的CPU架构,默认安装了多个,一般是adm64即可,可以将上述的url下载编辑,保留kube-flannel-ds-amd64这个daemonset即可,或者将其删除
6、此时再验证node的安装情况,所有节点均已显示为Ready状态,安装完毕!
1、验证node状态,获取当前安装节点,可以查看到状态, 角色,启动市场,版本,
2、查看kubernetse服务组件状态,包括scheduler,controller-manager,etcd
3、查看pod的情况,master中的角色包括kube-apiserver,kube-scheduler,kube-controller-manager,etcd,coredns以pods形式部署在集群中,worker节点的kube-proxy也以pod的形式部署。实际上pod是以其他控制器如daemonset的形式控制的。
使用kubectl和kubernetes交互时候可以使用缩写模式也可以使用完整模式,如kubectl get nodes和kubectl get no能实现一样的效果,为了提高工作效率,可以使用命令补全的方式加快工作效率。
1、生成kubectl bash命令行补全shell
2、加载shell环境变量,使配置生效
3、校验命令行补全,命令行中输入kubectl get co再按TAB键就能自动补全了
除了支持命令行补全之外,kubectl还支持命令简写,如下是一些常见的命令行检测操作,更多通过kubectl api-resources命令获取,SHORTNAMES显示的是子命令中的简短用法。
当你的才华撑不起你的野心时,你就应该静下心来学习
返回
如果觉得文章对您有帮助,请订阅专栏,分享给有需要的朋友吧😊
到此这篇kubectl 配置文件(kubernetes 配置文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!关于作者 刘海平(HappyLau )云计算高级顾问 目前在腾讯云从事公有云相关工作,曾就职于酷狗,EasyStack,拥有多年公有云+私有云计算架构设计,运维,交付相关经验,参与了酷狗,南方电网,国泰君安等大型私有云平台建设,精通Linux,Kubernetes,OpenStack,Ceph等开源技术,在云计算领域具有丰富实战经验,拥有RHCA/OpenStack/Linux授课经验。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-docker-k8s/61529.html