K8S的安装
两种方式安装k8s:
- 传统方式,使用二进制。
- 优点:能够让我们更清楚k8s的组件关系,可扩展性强,可定制化
- 缺点:不利于新手部署
- 使用kubeadm安装
- 优点:简单,高效
- 缺点:所有的事情都被kudeadm工具帮我们部署了,可扩展性差,不可定制化
这里介绍使用kubeadm安装的步骤:
1. master:安装kubelet,kubeadm,docker,kubeclt客户端,然后初始化,生成令牌,供node端加入
2. node01:安装kubelet,kubeadm,docker后,join 直接加入集群即可
3. node02:安装kubelet,kubeadm,docker后,join 直接加入集群即可
PS:在CentOS中安装K8S只能在Centos7的系统上进行安装,原因是Linux 内核的版本必须是 3.10 以上
master、node机器初始化
改IP,改hostname,改hosts,关机
##### -----------------master:-------------------
echo "master" > /etc/hostname
cat <<EOF >> /etc/hosts
192.168.225.151 master
192.168.225.152 node01
192.168.225.153 node02
EOF
sed -i s#IPADDR=192.168.3.206#IPADDR=192.168.3.207#g /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i s/UUID/#UUID/g /etc/sysconfig/network-scripts/ifcfg-ens33
reboot
##### -----------------node01:-------------------
echo "node01" > /etc/hostname
cat <<EOF >> /etc/hosts
192.168.225.151 master
192.168.225.152 node01
192.168.225.153 node02
EOF
sed -i s#IPADDR=192.168.3.206#IPADDR=192.168.3.208#g /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i s/UUID/#UUID/g /etc/sysconfig/network-scripts/ifcfg-ens33
reboot
##### -----------------node02:-------------------
echo "node02" > /etc/hostname
cat <<EOF >> /etc/hosts
192.168.225.151 master
192.168.225.152 node01
192.168.225.153 node02
EOF
sed -i s#IPADDR=192.168.3.206#IPADDR=192.168.3.209#g /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i s/UUID/#UUID/g /etc/sysconfig/network-scripts/ifcfg-ens33
reboot
master节点
# 下载yum源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker&& systemctl start docker
# kubernetes的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# kubelet是k8s的管理工具
# kubeadm是k8s的安装工具
# kubectl是k8s的客户端
# ----V1.13.3版本----
yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3 kubernetes-cni-0.6.0
# ----V1.15版本------
yum install -y kubelet kubeadm kubectl
# 忽略swap报错
cat <<EOF > /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
EOF
# 更加转发等功能
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 让配置生效
sysctl --system
# 开机自启动kubelet
systemctl enable kubelet
# -----------------1.13.3版本----------------
kubeadm init \
--apiserver-advertise-address=192.168.225.151 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.13.3 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.2.0.0/16 \
--service-dns-domain=cluster.local \
--ignore-preflight-errors=Swap \
--ignore-preflight-errors=NumCPU
# ----------------1.15.0版本---------------
kubeadm init \
--apiserver-advertise-address=192.168.3.207 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.2.0.0/16 \
--service-dns-domain=cluster.local \
--ignore-preflight-errors=Swap \
--ignore-preflight-errors=NumCPU
# ----------------------参数说明-------------------------
--apiserver-advertise-address:指定用 Master 的哪个IP地址与 Cluster的其他节点通信。
--service-cidr:指定Service网络的范围,即负载均衡VIP使用的IP地址段。
--pod-network-cidr:指定Pod网络的范围,即Pod的IP地址段。
--image-repository:Kubenetes默认Registries地址是k8s.gcr.io,在国内并不能访问 gcr.io,在1.13版本中我们可以增加-image-repository参数,默认值是k8s.gcr.io,将其指定为阿里云镜像地址:registry.aliyuncs.com/google_containers。
--kubernetes-version=v1.13.3:指定要安装的版本号。
--ignore-preflight-errors=:忽略运行时的错误,例如上面目前存在[ERROR NumCPU]和[ERROR Swap],忽略这两个报错就是增加--ignore-preflight-errors=NumCPU 和--ignore-preflight-errors=Swap的配置即可
------------------------------kubeadm init干了什么?--------------------
[init]:指定版本进行初始化操作
[preflight] :初始化前的检查和下载所需要的Docker镜像文件
[kubelet-start] :生成kubelet的配置文件”/var/lib/kubelet/config.yaml”,没有这个文件kubelet无法启动,所以初始化之前的kubelet实际上启动失败。
[certificates]:生成Kubernetes使用的证书,存放在/etc/kubernetes/pki目录中。
[kubeconfig] :生成 KubeConfig 文件,存放在/etc/kubernetes目录中,组件之间通信需要使用对应文件。
[control-plane]:使用/etc/kubernetes/manifest目录下的YAML文件,安装 Master 组件。
[etcd]:使用/etc/kubernetes/manifest/etcd.yaml安装Etcd服务。
[wait-control-plane]:等待control-plan部署的Master组件启动。
[apiclient]:检查Master组件服务状态。
[uploadconfig]:更新配置
[kubelet]:使用configMap配置kubelet。
[patchnode]:更新CNI信息到Node上,通过注释的方式记录。
[mark-control-plane]:为当前节点打标签,打了角色Master,和不可调度标签,这样默认就不会使用Master节点来运行Pod。
[bootstrap-token]:生成token记录下来,后边使用kubeadm join往集群中添加节点时会用到
[addons]:安装附加组件CoreDNS和kube-proxy
# 系统提示步骤
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 打通网络
cd ~
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
[github地址](https://github.com/coreos/flannel)
# 创建密钥
kubeadm token create --print-join-command
node节点
# 安装docker的yum源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker&& systemctl start docker
# 写入k8s的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 下载k8s的组件
----V1.13.3版本----
yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3 kubernetes-cni-0.6.0
----V1.15版本------
yum install -y kubelet kubeadm kubectl
# 忽略swap错误
cat <<EOF > /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
EOF
# 开启系统转发
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 让配置生效
sysctl --system
# 设置服务开机自启动
systemctl enable kubelet
# 加入集群(令牌过期作废)
kubeadm join 192.168.3.207:6443 --token a4645k.pq7e5e34y9sl9g53 --discovery-token-ca-cert-hash sha256:abd02c82cdefbcc2d17a2f53ec9b376e31d123ef33af880608d97f64b12a65f5 --ignore-preflight-errors=Swap
赵班长:
K8S的安装的更多相关文章
- kubernetes(k8s) helm安装kafka、zookeeper
通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...
- 使用k8s operator安装和维护etcd集群
关于Kubernetes Operator这个新生事物,可以参考下文来了解这一技术的来龙去脉: https://yq.aliyun.com/articles/685522?utm_content=g_ ...
- 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法
目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...
- 国内不fq安装K8S二: 安装kubernet
目录 2 安装kubelet 2.1 环境准备 2.2 设置国内的源 2.3 重要的设置 2.4 获取镜像 2.5 使用kubeadm init初始化集群 2.6 安装Pod Network 2.7 ...
- 国内不fq安装K8S一: 安装docker
目录 1.安装docker 1.1 准备工作 1.2 安装docker 1.3 修改cgroup 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国内不fq ...
- [转帖]容器云之K8s自动化安装方式的选择
容器云之K8s自动化安装方式的选择 时间 2016-12-05 19:10:53 极客头条 原文 http://geek.csdn.net/news/detail/127426 主题 Kubern ...
- Kubernetes(k8s)完整安装教程
Kubernetes(k8s)完整安装教程 2019-08-27 2.3k 记录 发表评论 目录 1 安装 1.1 安装 Docker 1.2 安装 VirtualBox 1.3 安装 kubect ...
- k8s Docker 安装
k8s Docker 安装 一.运行环境 Centos 7.7 虚拟机内核为 3.10 基础组件版本: k8s.gcr.io/kube-apiserver:v1.16.0 k8s.gcr.io/kub ...
- k8s上安装elasticsearch集群
官方文档地址:https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html yaml文件地址:https://dow ...
- K8S配置安装全过程
V1.11.1https://github.com/kubernetes/kubernetes/releases/tag/v1.11.1环境准备:系统:centos7.2.1511[root@mast ...
随机推荐
- DockerToolbox安装docker - Windows 10
Wiindows安装docker 在转换成linux模式的时候不能使用,只能退而求其次安装Docker ToolBox在windows10中使用docker. 一.前言 由于本机使用的是win10家庭 ...
- 结合webpack使用vue-router和它的子路由,即路由嵌套
在上一个项目的基础上进行的,所以基本的配置在这里就不赘述了. 一.结合webpack使用vue-router 1.新建组件.vue文件 2.启用路由 安装插件cnpm i vue-router -S ...
- VSCode配置FTP
首先在VScode中下载安装插件SFTP Windwos下摁Ctrl+Shift+P,输入SFTP: config命令并运行,进入sftp.json配置项如下: { "name": ...
- 关于Sublime如何配置C++环境的问题
前言 传说sublime是全球最好的编辑器,可是只是编辑器啊!!!如果要运行,对于我们这些蒟蒻来说,不得不去使用DEV_C++.我们总是幻想能让sublime变成一个轻量级IDE,那该多好啊!!! 那 ...
- 谈谈我对Promise的理解
一.Promise是什么? Promise是最早由社区提出和实现的一种解决异步编程的方案,比其他传统的解决方案(回调函数和事件)更合理和更强大. ES6 将其写进了语言标准,统一了用法,原生提供了Pr ...
- wampserver 配置的几个坑(雾
1. 从安装版本说起 自从我进入大学之后,便继承了学长那里的wampserver2.5版本 直到有一天自己下载wamp的时候才注意到已经有 3.0.6版本了 (现在有更高的了 但是3.0.6够用了) ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- BK-信息查找、摘取
先了解下压缩文件中的内容: 实现功能: 1.根据"e1.xlsx"表中的dealerName.bu(可能没有).时间,匹配"待挖取信息表.xlsx"中对应的相关 ...
- 如何将博客内容输出到pdf
可以按照三类网页插件:Clearly,Instapaper 和 Readability,实际安装发现,第一个装不上,只有最后一个好用.在firefox或者chrom浏览器装好后,右键switch to ...
- 前端——语言——Core JS——《The good part》读书笔记——第四章节(Function)
本章介绍Function对象,它是JS语言最复杂的内容. Java语言中没有Function对象,而是普通的方法,它的概念也比较简单,包含方法的重载,重写,方法签名,形参,实参等. JS语言中的Fun ...