kubernetes笔记-1-基础环境部署
一、环境信息:
操作系统:ubuntu 18.04 server amd64
docker:docker 19.03.ce
kubernetes:v1.19
| IP地址 | 主机名 | 角色 |
| 172.29.9.1 | k8s-master k8s-master.ilinux.io k8s-api.ilinux.io | master |
| 172.29.9.11 | k8s-node1.ilinux.io k8s-node1 | node1 |
| 172.29.9.12 | k8s-node2.ilinux.io k8s-node2 | node2 |
| 172.29.9.13 | k8s-node3.ilinux.io k8s-node3 | node3 |
操作系统安装无需配置swap分区
二、操作系统基本设定
root@k8s-node1:~# timedatectl set-timezone "Asia/Shanghai" #设置时区为上海
root@k8s-master:~# ufw disable && ufw status #关闭防火墙并查看状态
root@k8s-master:~# swapoff -a #关闭swap分区,永久关闭需要在fstab文件中注释swap开头的行
修改hosts文件:
172.29.9.1 k8s-master.ilinux.io k8s-master k8s-api.ilinux.io
172.29.9.11 k8s-node1.ilinux.io k8s-node1
172.29.9.12 k8s-node2.ilinux.io k8s-node2
172.29.9.13 k8s-node3.ilinux.io k8s-node3
三、配置并启动容器
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=5:19.03.0~3-0~ubuntu-bionic
root@k8s-master:~# docker version #查看安装的docker-ce版本
root@k8s-master:~# vim /etc/docker/daemon.json #配置docker国内加速
}
"registry-mirrors": ["https://registry.docker-cn.com"]
}
root@k8s-master:~# systemctl daemon-reload #重新加载daemon
root@k8s-master:~# systemctl start docker.service #启动docker服务
root@k8s-master:~# systemctl enable docker #加入开机启动
三、kubernetes 基本组件安装
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
root@k8s-master:~# apt install kubelet=1.19.0-00 安装kubelet,指定版本为1.19.0
root@k8s-master:~# apt install kubeadm=1.19.0-00 安装kubeadm,指定版本为1.19.0
root@k8s-master:~# apt install kubectl=1.19.0-00 安装kubectl,指定版本为1.19.0
以上操作全部需要在所有节点执行
四、kubeadm初始化
root@k8s-master:~# kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.0 \
--control-plane-endpoint k8s-api.ilinux.io \
--apiserver-advertise-address 172.29.9.1 \
--pod-network-cidr 10.244.0.0/16 \
--token-ttl 0

出现如上提示表示初始化成功
参数说明:
--image-repository:指定使用的镜像仓库,默认为gcr.io。
--kubernetes-version:Kubernetes程序组件版本号,必须与安装的kubelet版本号相同。
--control-plane-endpoint:控制平台固定访问端点,可以是IP或DNS名称,作为集群管理员与集群组件的kubeconfig配置文件的API server的访问地址。单控制平台部署时可不使用该选项。
--pod-network-cidr:pod网络的地址范围,其值为CIDR,通常Flannel网络插件的默认值为10.244.0.0/16,ProjectCalico插件的默认值为192.168.0.0/16。
--service-cidr:Service的网络地址范围,其值为CIDR格式的网络地址,默认为10.96.0.0/12。通常,仅Flannel一类的网络插件需要手动指定该地址。
--apiserver-advertise-address:API Server通告给其他组件的IP地址,一般为Master节点用于集群内通信的IP地址,0.0.0.0表示节点上所有可用地址。
--token-ttl:共享令牌的过期时长,默认为24小时,0表示永不过期,基于安全考虑需要将过期时间设置一具特定值。
五、配置命令行并加入node节点
1、配置命令行工具kubectl
root@k8s-master:~# mkdir -p $HOME/ .kube
root@k8s-master:~# cp -i /etc/kubernetes/admin.conf /root/.kube/config
root@k8s-master:~# chown root:root /root/.kube/config
root@k8s-master:~# kubectl get nodes #获取节点相关状态信息
2、部署Flannel网络插件
root@k8s-master:~# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
等候几秒后再次使用kubelet get nodes命令查看,发现STATUS状态已经变为Ready了。
3、添加工作节点
root@k8s-node1:~#kubeadm join k8s-api.ilinux.io:6443 --token i4zjhe.ghw1val8gc9ik688 \
--discovery-token-ca-cert-hash sha256:d67f112d9198dfe3a8dc8de9cafcb205b09a5a4bad660f8ffbac01a1883a7405
#该命令在初始化完成后的提示最后一条命令复制即可
4、root@k8s-master:~# kubectl get nodes #再次使用命令查看发现node1已经加入节点

5、关于token
默认token 24小时过期,后期可使用kubeadm token list查看还未过期的token。或使用kubeadm token create创建一个新的token
kubernetes笔记-1-基础环境部署的更多相关文章
- ELK-6.5.3学习笔记–elk基础环境安装
本文预计阅读时间 13 分钟 文章目录[隐藏] 1,准备工作. 2,安装elasticsearch. 3,安装logstash. 4,安装kibana 以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承 ...
- OpenStack实践系列①openstack简介及基础环境部署
OpenStack实践系列①openstack简介及基础环境部署 一.OpenStack初探1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运 ...
- openstack(pike 版)集群部署(一)----基础环境部署
一.环境 1.系统: a.CentOS Linux release 7.4.1708 (Core) b.更新yum源和安装常用软件 # yum -y install epel-release ba ...
- mongodb基础环境部署(windows系统下)
Normal 0 false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNorma ...
- Jenkins+maven+gitlab自动化部署之基础环境部署(一)
从一个二线城市,来到上海,刚入职,老大就给任务,为了减少开发打包部署时间,需要搭建一套自动化部署环境.接到任务后,赶紧上网查找资料,以及了解jenkins作用等等,用了一周时间,了解了个大概,由于都是 ...
- 虚拟机console基础环境部署——工作目录准备
1. 概述2. 相关约定2.1 删除旧文件2.2 创建全局共享文件目录2.3 创建全局软件安装目录2.4 创建数据放置目录3. 总结 1. 概述 上述博客中,已经为console最小化安装了操作系统. ...
- Maven 学习笔记(一) 基础环境搭建
在Java的世界里,项目的管理与构建,有两大常用工具,一个是Maven,另一个是Gradle,当然,还有一个正在淡出的Ant.Maven 和 Gradle 都是非常出色的工具,排除个人喜好,用哪个工具 ...
- InfluxDB+Grafana大数据监控系列之基础环境部署(一)
一.单节点环境部署 机器节点信息及 InfluxDB.Grafana 版本选择: 节点 Linux版本 部署服务 10.223.1.198 Centos 6.8 InfluxDB 1.7.7 10.2 ...
- 虚拟机console基础环境部署——系统基础环境
1. 概述2. 工具类安装2.1 安装vim2.2 安装tree2.3 安装expect2.4 安装lsof3. 编译环境类安装 1. 概述 本系列博客是在最小化安装CentOS6.5的基础上,通过配 ...
- OpenShift-OKD3.10基础环境部署
单master + 双node 1.主机角色划分 #采用双网段部署 0 网段是opesnshift内部通信IP,1 网段是连接外网通信地址 #master master.example.com 192 ...
随机推荐
- KingbaseES R3 集群pcp_attach_node 更新show pool_nodes中节点状态
系统环境: 操作系统: [kingbase@node2 bin]$ cat /etc/centos-release CentOS Linux release 7.2.1511 (Core) 数据库: ...
- K8S Service_Ingress
Service 在K8S的世界里,虽然每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失 Service(服务)就是用来解决这个问题的核心该你啊 一个Service可以看作 ...
- ESX添加过时的硬件
昨天遇到了个ESX上有旧的qlogic的FC卡无法识别的问题.无法识别也就无法连接存储,整个ESX就基本无法使用了.所以,需要检查硬件.一开始,在查了很多资料各种命令检查,走了很多弯路.这里我总结一下 ...
- Elastic:Sense chrome - 在 chrome 浏览器中操作 Elasticsearch 的插件
文章转载自:https://elasticstack.blog.csdn.net/article/details/114533904 Sense 是我们现在所说的 Kibana 控制台 UI 的第一个 ...
- 4.maven私服nexus2迁移到nexus3
注意,本文讲解的是针对我们原来所用的nexus2.14.5版本的升级配置流程,如果您的老私服版本并不是这个,那么请先参考这里:升级兼容性 – Repository Manager 2到3.选定对应可升 ...
- 为什么阿里Java开发手册不推荐使用Timestamp
开发手册 不推荐用java.sql.Date.java.sql.Time网上说的文章有很多. 参考文章:一文告诉你Java日期时间API到底有多烂 但为什么不推荐使用java.sql.Timestam ...
- 【python】Ubuntu中多条命令的运行
在模型训练时,往往需要消融实验,通常都是在一个程序运行结束后才再次手动运行下一个,不及时在电脑前可能无端浪费时间,因此需要让程序自动一个接一个去执行.受此启发,特了解了Ubuntu中多命令运行的内容. ...
- Vue中引入echarts。
1.安装 在终端vue项目的文件夹下运行npm install echarts --save安装依赖 可以使用npm install echarts@("这里可以写版本号") -- ...
- 齐博x1动态改变标签调用不同频道的数据
标签默认需要设置标签参数 type 指定调用哪个频道的数据,比如下面的代码,需要默认指定商城的数据, {qb:tag name="qun_pcshow_shop001" type= ...
- 齐博x1一段不错的小js提高一点点阅读体验 计算本文阅读所需的时长
如图所示很多比较大的站点都有这样的一个小玩意 就是本文有多少字 阅读需要多少时间. 一段小小的js就可以实现,当然了php也可以功能太小了不值得做钩子或者插件自己需要的话再模板加一下吧. <sc ...