最简单部署k8s集群(一)
之前的电脑配置不太够,学习K8s就使用“minikube”本机单机部署k8s环境,下载minikube二进制文件启动就可以。现在电脑配置好一些,使用虚拟机部署k8s集群。
部署k8s集群网上方法有很多,大多数都是所有节点安装docker、kubeadm、kubelet,找了一个比较简单的方式,下载安装 kubekey,即可一条命令部署k8s集群。
————————————————————————————————————
准备环境
使用VMware虚拟机 创建3个虚拟机服务,镜像是 CentOS-7-x86_64-DVD-2009.iso 。
192.168.90.128 master
192.168.90.130 note1
192.168.90.131 note2
准备工作
kubekey 下载和使用说明:https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md
kubekey 官方使用文档:https://kubesphere.io/zh/docs/quick-start/all-in-one-on-linux/
1, 下载安装kubekey。
下载地址:https://github.com/kubesphere/kubekey/releases
可以下载安装包,直接解压即可得到 kubekey二进制文件“kk” 。可以看需要的版本下载,我用的是 1.2.1 。
把二进制文件“kk” 加入系统环境变量内 。
export KKZONE=cn
mv kk /usr/local/bin/
2, 在所有节点上安装相关依赖。
yum install -y socat conntrack ebtables ipset
3, 所有节点关闭网关防火墙。
setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld关闭swap分区
临时关闭:swapoff -a
4, 所有节点时间同步。
yum install -y chrony
systemctl enable --now chronyd
timedatectl set-timezone Asia/Shanghai
5, 部署单节点k8s(如要部署集群,跳过此步骤)。
部署单节点的k8s,直接执行
kk create cluster
指定k8s版本
kk create cluster --with-kubernetes v1.20.4
6, 部署k8s集群。
先创建配置文件,生成一个 config-sample.yaml 文件。
kk create config
编辑config-sample.yaml,如下,配置节点的服务器名称、地址、密码等信息。
apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:name: sample
spec:hosts:- {name: k8s-master, address: 192.168.90.128, internalAddress: 192.168.90.128, port: 22, user: root, password: 123456}- {name: k8s-node1, address: 192.168.90.130, internalAddress: 192.168.90.130, port: 22, user: root, password: 123456}- {name: k8s-node2, address: 192.168.90.131, internalAddress: 192.168.90.131, port: 22, user: root, password: 123456}roleGroups:etcd:- k8s-mastermaster: - k8s-masterworker:- k8s-node1- k8s-node2controlPlaneEndpoint:##Internal loadbalancer for apiservers internalLoadbalancer: haproxydomain: lb.kubesphere.localaddress: ""port: 6443kubernetes:version: v1.21.5clusterName: cluster.localnetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18registry:registryMirrors: []insecureRegistries: []addons: []
环境初始化,此为检测环境是否有问题,也可以跳过此步骤。
kk init os -f config-sample.yaml
执行部署命令, 会在三个节点进行安装应用。
kk create cluster -f config-sample.yaml
如果出现以下报错:
Error: Failed to download cluster config: Failed to unmarshal configuration: json: cannot unmarshal number into Go struct field HostCfg.spec.hosts.password of type string
修改配置文件 config-sample.yaml,把密码加上双引号即可。
- {name: k8s-master, address: 192.168.90.128, internalAddress: 192.168.90.128, port: 22, user: root, password: "123456"}- {name: k8s-node1, address: 192.168.90.130, internalAddress: 192.168.90.130, port: 22, user: root, password: "123456"}- {name: k8s-node2, address: 192.168.90.131, internalAddress: 192.168.90.131, port: 22, user: root, password: "123456"}
等待安装完成。。。。。。。
————————————————————————————————
安装完成后,可以看到三个节点的服务器名称变成了对应的节点名称,并且都在目录 /usr/local/bin/ 内安装了 helm 、 kubeadm 、kubectl 、 kubelet等k8s的应用。
[tang@k8s-master ~]$ whereis kubectl
kubectl: /usr/local/bin/kubectl
[tang@k8s-master ~]$ cd /usr/local/bin/
[tang@k8s-master bin]$ ls
etcd etcdctl helm kubeadm kubectl kubelet kube-scripts
[tang@k8s-master bin]$
[tang@k8s-node1 ~]$ whereis kubectl
kubectl: /usr/local/bin/kubectl
[tang@k8s-node1 ~]$ cd /usr/local/bin
[tang@k8s-node1 bin]$ ls
helm kubeadm kubectl kubelet kube-scripts
[tang@k8s-node1 bin]$
[tang@k8s-node2 ~]$ whereis kubectl
kubectl: /usr/local/bin/kubectl
[tang@k8s-node2 ~]$ cd /usr/local/bin/
[tang@k8s-node2 bin]$ ls
helm kubeadm kubectl kubelet kube-scripts
[tang@k8s-node2 bin]
切换root用户,查看k8s节点
[root@k8s-master ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master Ready control-plane,master 6d23h v1.21.5 192.168.90.128 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.8
k8s-node1 Ready worker 6d23h v1.21.5 192.168.90.130 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.8
k8s-node2 Ready worker 6d23h v1.21.5 192.168.90.131 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.8
[root@k8s-master ~]#
目前基本的k8s环境已经部署完成,还没有部署任何服务,只有k8s应用的服务。
[root@k8s-master ~]# kubectl get pods
No resources found in default namespace.
[root@k8s-master ~][root@k8s-master ~]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-75ddb95444-p22dg 1/1 Running 3 7d
kube-system calico-node-8z46l 1/1 Running 2 7d
kube-system calico-node-k2ktb 1/1 Running 2 7d
kube-system calico-node-p7qrs 1/1 Running 3 7d
kube-system coredns-5495dd7c88-hkc76 1/1 Running 3 7d
kube-system coredns-5495dd7c88-nqlmt 1/1 Running 3 7d
kube-system haproxy-k8s-node1 1/1 Running 2 7d
kube-system haproxy-k8s-node2 1/1 Running 2 7d
kube-system kube-apiserver-k8s-master 1/1 Running 3 7d
kube-system kube-controller-manager-k8s-master 1/1 Running 45 7d
kube-system kube-proxy-tcsxr 1/1 Running 2 7d
kube-system kube-proxy-w748v 1/1 Running 2 7d
kube-system kube-proxy-xcvwf 1/1 Running 3 7d
kube-system kube-scheduler-k8s-master 1/1 Running 44 7d
kube-system nodelocaldns-jwrlk 1/1 Running 3 7d
kube-system nodelocaldns-kt7c2 1/1 Running 2 7d
kube-system nodelocaldns-lm6h9 1/1 Running 2 7d
[root@k8s-master ~]
到此基本结束k8s集群部署,以后再部署应用等。。。
——————————————————————————————————————
7,kubekey集群维护
1、添加节点
kk add nodes -f config-sample.yaml
2、 删除节点
kk delete node <nodeName> -f config-sample.yaml
3、删除集群
kk delete clusterkk delete cluster [-f config-sample.yaml]
4、集群升级
kk upgrade [--with-kubernetes version] [--with-kubesphere version]kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]
最简单部署k8s集群(一)相关推荐
- 【02】Kubernets:使用 kubeadm 部署 K8S 集群
写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...
- 如何通过rancher部署k8s集群
目录 1 安装前准备 2 安装rancher 3 配置Rancher 4 创建k8s集群 最近的工作中需要使用到K8S,而面临的第一个问题就是如何部署一个K8S集群环境.现有多种部署方式,如:kube ...
- 快速部署 k8s 集群
部署3个节点的k8s 集群,三个虚机的信息如下所示: 主机名 ip地址 角色 系统os k8s-master 192.168.1.38 worker Ubuntu 18.04.2 LTS k8s-no ...
- k8s入门:裸机部署 k8s 集群
系列文章 第一章:✨ k8s入门:裸机部署 k8s 集群 第二章:✨ k8s入门:部署应用到 k8s 集群 第三章:✨ k8s入门:service 简单使用 第四章:✨ k8s入门:StatefulS ...
- 【云原生Kubernetes系列第五篇】kubeadm v1.20 部署K8S 集群架构(人生这道选择题,总会有遗憾)
系列文章目录 ??即日起,更新云原生相关知识,喜欢的小伙伴可以给我点个三连喔 ??收录至专栏 云原生 ??[云原生Docker系列第一篇]Docker镜像管理 ??[云原生Docker系列第二篇]Do ...
- kubeadm部署K8S集群并使用containerd做容器运行时
kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...
- kubeadm部署k8s集群
1.准备环境 虚拟机操作系统: Centos7 角色 IP Master 192.168.150.140 Node1 192.168.150. ...
- linux上部署K8S集群
部署K8S集群 服务器硬件要求:三台虚拟机服务器,操作系统都为centos: 硬盘最低配置:内存2GB,CPU2核,硬盘30GB. 准备环境 master 192.168.200.110 node ...
- 阿里云部署k8s集群
阿里云部署k8s集群 前言 1.k8集群架构 Kubernetes Cluster = N Master Node + N Worker Node:N主节点+N工作节点: N>=1 2.机器 ...
最新文章
- validate插件深入学习-01 小白从看透一个插件开始
- 趣题:寻找出现了奇数次的数
- 网站推广——网站推广专员从蜘蛛角度出发如何进行网站优化
- C语言中的static 详细分析
- MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
- Linux input子系统 io控制字段【转】
- 投票抵制华为鸿蒙系统,网友投票华为十大技术:鸿蒙OS仅排第二!
- c构造函数和析构函数_C ++构造函数和析构函数| 查找输出程序| 套装2
- java 编码解码_深入解析Java中的编码转换以及编码和解码操作
- c++ string substr_用std::string_view替换leveldb的Slice
- clickhouse创建数据库以及表
- intellij idea 程序包不可见问题
- Zigbee之旅(五):几个重要的CC2430基础实验——串口通信
- 使用tesserocr二值化识别知网登录验证码
- springboot项目在cmd窗口运行后台卡顿问题
- 数据库的基本操作习题
- C语言实现任意函数求不定积分
- 【C】指针的相关运算练习题
- 微信公众号开发教程(四)自定义菜单
- 用NCL将GRIB/GRIB2文件转成nc文件(批量转),JRA-55再分析为例
热门文章
- 掌阅漫画导航栏(可滑动,可下拉)
- 亚马逊新开发者账号SP-API Developer申请
- 【论文解析】Fast Adaptive Task Offloading in Edge Computing Based on Meta Reinforcement Learning
- 用Python进行游戏舆论分析,生成词云,源码赠送,文末 评论送书包邮!!!
- 跨界玩CRM营销 开吃餐饮大数据问题
- PaddleOCR二次全流程——3.使用TextRender合成图片
- 刚打完九价HPV疫苗的幸运儿,来给大家分享一波经验啦!
- 用Python的turtle画出beautiful四扇风车图
- Java控制台打印爱心算法(今典算法案例)
- CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport(转载)