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. Jenkins 配置 SpringBoot 自动构建部署

    服务器版本 Linux version 3.10.0-957.12.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8 ...

  2. Python 环境管理

    Python 版本管理器:pyenv zsh 配置 # 安装 curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv ...

  3. Python递归函数,二分查找算法

    目录 一.初始递归 二.递归示例讲解 二分查找算法 一.初始递归 递归函数:在一个函数里在调用这个函数本身. 递归的最大深度:998 正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去.但 ...

  4. CodeForces 427D Match & Catch

    洛谷题目页面传送门 & CodeForces题目页面传送门 给定\(2\)个字符串\(a,b,|a|=n,|b|=m\),求最长的既在\(a\)中出现恰好\(1\)次又在\(b\)中出现恰好\ ...

  5. 【I'm Telling the Truth】【HDU - 3729】 【匈牙利算法,DFS】

    思路 题意:该题主要说几个同学分别说出自己的名次所处区间,最后输出可能存在的未说谎的人数及对应的学生编号,而且要求字典序最大. 思路:刚刚接触匈牙利算法,了解的还不太清楚,附一个专门讲解匈牙利算法的博 ...

  6. 上传文件时 重新载入页面以获取源代码 http://*/upload.php

    今天做一个处理上传文件的接口时碰到这样一个问题, 用的是element-ui的上传组件,但是上传失败, 抓包一看返回的是 重新载入页面以获取源代码 http://*/upload.php 网上搜了一下 ...

  7. keras 学习笔记:从头开始构建网络处理 mnist

    全文参考 < 基于 python 的深度学习实战> import numpy as np from keras.datasets import mnist from keras.model ...

  8. 在Docker for Windows中运行GUI程序

    Docker运行GUI原理 Docker目前大多应用在服务器领域,那么在Docker中可以运行GUI程序吗?怀着好奇心google了一番,还真有人写了一篇文章 running-gui-applicat ...

  9. 第一章 .NET基础-C#基础

    一.1.1. 基础语法 一.1.1.1. 注释符 一.1.1.1.1. 注释符的作用 l 注释 l 解释 一.1.1.1.2. C#中的3中注释符 l 单行注释 // l 多上注释 /* 要注释的内容 ...

  10. springboot中oracle的依赖添加失败的解决

    由于Oracle授权问题,Maven3不提供oracle JDBC driver  步骤一:在pom中添加如下: <!--Oracle 驱动 --> <dependency> ...