Kubeadm安装

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。

安装Docker ce

Docker安装

每个机器都需要装

环境准备

编辑hosts对应关系
cat <<EOF >>/etc/hosts
192.168.37.61 Smile1
192.168.37.62 Smile2
192.168.37.63 Smile3
EOF
关闭防火墙
systemctl stop firewalld.service 
systemctl disable firewalld.service
禁用SELINUX
sudo setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
关闭swap
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
配置内核参数添加如下内容

cat > /etc/sysctl.d/k8s.conf <<EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

配置K8S的yum源

cat < /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

安装kubelet、kubeadm、kubectl

yum makecache fast
yum install -y kubelet kubeadm kubectl

调整启动方式

kubelet的启动环境变量要与docker的cgroup-driver驱动一样

docker info | grep -i cgroup
Cgroup Driver: cgroupfs --> 运行命令显示

docker的cgroup-driver是cgroupfs,而k8s默认是systemd

修改docker的cgroup-driver

vim /etc/docker/daemon.json
加入内容 : { "exec-opts": ["native.cgroupdriver=systemd"] }
最终文件内容

{

"registry-mirrors": [

"https://dockerhub.azk8s.cn",

"https://reg-mirror.qiniu.com"

],

"exec-opts": ["native.cgroupdriver=systemd"]

}

重启Docker
systemctl restart docker
systemctl status docker

启动kubelet服务

systemctl enable kubelet.service
systemctl start kubelet.service

配置Master节点

进行kubernetes集群初始化

Master节点执行命令 :

kubeadm init --kubernetes-version=1.15.0 \

--apiserver-advertise-address=192.168.37.61 \

--image-repository=gcr.azk8s.cn/google_containers \

--pod-network-cidr=10.244.0.0/16

--token-ttl 0

--kubernetes-version : 指定版本号

--apiserver-advertise-address : 指定主机地址

其中设置image-repository这一步很重要,kubeadm默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要指定阿里云或者是其他国内镜像仓库地址。

定义POD的网段为: 10.244.0.0/16,

初始化成功后会返回如下信息
//这个返回信息三条命令是配置kubectl工具的命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config // 这个返回信息是配置Node节点的命令
kubeadm join 192.168.98.230:6443 --token dexs09.ftjp7y7obq6a3t6n \
--discovery-token-ca-cert-hash sha256:4aace846f8a6c381902592049591152fd7250b63e500e370a4b64902d202f7f2
配置kubectl工具

运行初始化成功后返回的三条命令

部署pod的网络

有很多种选择参考

我们选择的是flannel,其它的几种可能会有问题

wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

//在kube-flannel.yml里面默认的镜像下载地址是quay.io,国内无法访问,这里替换所有的quay.io为 quay-mirror.qiniu.com
sed -i "s/quay.io/quay-mirror.qiniu.com/g" kube-flannel.yml
执行安装命令
kubectl apply -f kube-flannel.yml
查看运行状态
kubectl get pod --all-namespaces -o wide

确保所有的pod都处在运行状态

部署Node节点

将所有的node节点加入到kubernets集群

//在Node节点上执行(这个命令就是集群初始化之后的返回信息)
kubeadm join 192.168.98.230:6443 --token dexs09.ftjp7y7obq6a3t6n \
--discovery-token-ca-cert-hash sha256:4aace846f8a6c381902592049591152fd7250b63e500e370a4b64902d202f7f2

最后检测集群各节点的运行状态

kubectl get nodes

再次查看各个pod的状态,确保都是处于Runing状态

kubectl get pod --all-namespaces -o wide

如果有问题,重新配置Master

kubeadm reset

我每天会写文章记录云计算技术学习之路,另外我自己整理了些云计算的学习资料,目前全部放在我的公众号"SmallBird技术分享",加入我们一起学习交流,并且回复’分享’会有大数据,云计算资源惊喜等着你~

使用kubeadm方式安装K8S的更多相关文章

  1. 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...

  2. centos环境 使用kubeadm快速安装k8s集群v1.16.2

    全程使用root用户运行,宿主机需要连接外网 浏览一下官方kubeadm[有些镜像用不了] https://kubernetes.io/docs/setup/production-environmen ...

  3. kubeadm简单安装k8s

    One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS 2 GB or more of R ...

  4. 二进制方式安装 k8s

    推荐个好用的安装k8s的工具 https://github.com/easzlab/kubeasz 该工具基于二进制方式部署 k8s, 利用 ansible-playbook 实现自动化    1.1 ...

  5. kubeadm方式搭建K8S集群

    一.kubeadm介绍 二.安装要求 三.集群规划 四.环境初始化(在每个服务器节点操作) 1.关闭防火墙 2.关闭selinux 3.关闭swap 4.根据规划设置主机名 5.在Master添加ho ...

  6. 采用二进制方式安装K8S集群,版本etcd-v3.3.10,flannel-v0.11.0,kubernetes-server-linux-amd64

    官方提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环 ...

  7. kubeadm方式安装kubernetes

    系统: Ubuntu 18.04.2 LTS 内存: 8G 机器: 属性 IP Hostname ssh  Master  192.168.91.48 blackray-pc     node1  1 ...

  8. kubeadm快速安装k8s

    1.安装net-tools [root@localhost ~]# yum install -y net-tools 2.关闭firewalld [root@localhost ~]# systemc ...

  9. 从centos7镜像到搭建kubernetes集群(kubeadm方式安装)

    在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了... ...

随机推荐

  1. 夯实Java基础(一)——数组

    1.Java数组介绍 数组(Array):是多个相同类型元素按一定顺序排列的集合. 数组是编程中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常我们可以通过数组元素的索引来访问 ...

  2. Docker相关地址

    Docker社区版(CE)地址: https://hub.docker.com/search/?type=edition&offering=community Docker文档地址: http ...

  3. npm包开发与发布

    把通用的功能开发成npm包,便用使用和维护,更重要的是可以分享给广大的开发者,是不是很激动人心! 那么,步骤如下: 1.创建项目 创建项目目录,npm init ,根据需要输入配置信息(建完后也可以在 ...

  4. struts的上传下载

    文件上传 添加jar包 commons-io-1.3.2.jar commons-fileupload-1.2.1.jar 前台页面 form表单 method值为post 添加"encty ...

  5. cs231n---卷积网络可视化,deepdream和风格迁移

    本课介绍了近年来人们对理解卷积网络这个“黑盒子”所做的一些可视化工作,以及deepdream和风格迁移. 1 卷积网络可视化 1.1 可视化第一层的滤波器 我们把卷积网络的第一层滤波器权重进行可视化( ...

  6. Hive 系列(一)—— Hive 简介及核心概念

    一.简介 Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 ...

  7. 性能测试学习第一天-----概念、环境、LR录制&参数化

    1.性能测试的概念: 通过一定的手段,在多并发情况下,获取被测系统的各项性能指标, 验证被测系统在高并发下的处理能力.响应能力.稳定性等,能否满足预期.定位性能瓶颈,排查性能隐患,保障系统的质量,提升 ...

  8. appiumstudio工具-----实现windows上安卓、IOS自动化测试

    博主用的是win10,用python+appium做完安卓的自动化第一个版本后,大量地搜索windows上做IOS自动化的解决办法,有的建议用虚拟机,安装苹果的系统,没有实践过,据说效果不很好.然后, ...

  9. 非域环境下SQL Server搭建Mirror(镜像)的详细步骤

    1.测试验证环境 服务器角色 机器名 IP SQL Server Ver 主体服务器 WIN-TestDB4O 172.83.XXX.XXX SQL Server 2012 - 11.0.5058.0 ...

  10. java实现查找PDF关键字所在页码及其坐标

    1.因为最近有这方面的需求,用过之后记录一下. 2.此功能跟PDF中Ctrl+F性质一样,如果PDF中为图片形式的不支持定位到关键字. import com.itextpdf.awt.geom.Rec ...