使用kubeadm方式安装K8S
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的更多相关文章
- 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...
- centos环境 使用kubeadm快速安装k8s集群v1.16.2
全程使用root用户运行,宿主机需要连接外网 浏览一下官方kubeadm[有些镜像用不了] https://kubernetes.io/docs/setup/production-environmen ...
- kubeadm简单安装k8s
One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS 2 GB or more of R ...
- 二进制方式安装 k8s
推荐个好用的安装k8s的工具 https://github.com/easzlab/kubeasz 该工具基于二进制方式部署 k8s, 利用 ansible-playbook 实现自动化 1.1 ...
- kubeadm方式搭建K8S集群
一.kubeadm介绍 二.安装要求 三.集群规划 四.环境初始化(在每个服务器节点操作) 1.关闭防火墙 2.关闭selinux 3.关闭swap 4.根据规划设置主机名 5.在Master添加ho ...
- 采用二进制方式安装K8S集群,版本etcd-v3.3.10,flannel-v0.11.0,kubernetes-server-linux-amd64
官方提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环 ...
- kubeadm方式安装kubernetes
系统: Ubuntu 18.04.2 LTS 内存: 8G 机器: 属性 IP Hostname ssh Master 192.168.91.48 blackray-pc node1 1 ...
- kubeadm快速安装k8s
1.安装net-tools [root@localhost ~]# yum install -y net-tools 2.关闭firewalld [root@localhost ~]# systemc ...
- 从centos7镜像到搭建kubernetes集群(kubeadm方式安装)
在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了... ...
随机推荐
- weblogic 内存溢出解决 java.lang.OutOfMemoryError: PermGen space
解决办法: 1.在idea中,运行时给weblogic server中 VM options 配置增加内存的参数:-server -XX:PermSize=1024m -XX:MaxPermSize= ...
- 从原理层面掌握@RequestAttribute、@SessionAttribute的使用【一起学Spring MVC】
每篇一句 改我们就改得:取其精华,去其糟粕.否则木有意义 前言 如果说知道@SessionAttributes这个注解的人已经很少了,那么不需要统计我就可以确定的说:知道@RequestAttribu ...
- 信息收集框架——recon-ng
背景:在渗透测试前期做攻击面发现(信息收集)时候往往需要用到很多工具,最后再将搜集到的信息汇总到一块. 现在有这样一个现成的框架,里面集成了许多信息收集模块.信息存储数据库.以及报告 ...
- 关于JVM内存溢出的原因分析及解决方案探讨
前言:JVM中除了程序计数器,其他的区域都有可能会发生内存溢出. 0.什么是内存溢出 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出. 1. ...
- windwos环境下安装python2和python3
一 python安装 下载地址: https://www.python.org/downloads/ 环境变量:Path中添加C:\Python27\Scripts\;C:\Python27\; C: ...
- 深度学习模型训练技巧 Tips for Deep Learning
一.深度学习建模与调试流程 先看训练集上的结果怎么样(有些机器学习模型没必要这么做,比如决策树.KNN.Adaboost 啥的,理论上在训练集上一定能做到完全正确,没啥好检查的) Deep Learn ...
- 在Vue 中使用Typescript
Vue 中使用 typescript 什么是typescript typescript 为 javaScript的超集,这意味着它支持所有都JavaScript都语法.它很像JavaScript都强类 ...
- 通过Blazor使用C#开发SPA单页面应用程序(1)
2019年9月23——25日 .NET Core 3.0即将在.NET Conf上发布! .NET Core的发布及成熟重燃了.net程序员的热情和希望,一些.net大咖也在积极的为推动.NET Co ...
- Go开发中的十大常见陷阱[译]
原文: The Top 10 Most Common Mistakes I've Seen in Go Projects 作者: Teiva Harsanyi 译者: Simon Ma 我在Go开发中 ...
- 搭建本地的idea激活服务器
前言 博主用的是idea这个IDE,因为最近idea官方打击第三方激活服务有些严重,所以我的idea经常处于今天可以用,到了明天就不能用的状态,所以,从idea激活的网站找到了本地的id ...