文档章节

kubernetes 环境搭建 —— kubeadm

lemos
 lemos
发布于 09/23 10:23
字数 626
阅读 29
收藏 0

最新版的 k8s 在后续使用中发现某些第三方组件有兼容性问题,建议使用 15.3 版本。

主从节点需要安装的服务

Master 节点 Node 节点
etcd-master Control plane(如:calico,fannel)
kube-apiserver kube-proxy
kube-controller-manager other apps
kube-dns  
Control plane(如:calico,fannel)  
kube-proxy  
kube-scheduler

安装 kubeadm(主、子节点)

yum install yum-utils device-mapper-persistent-data lvm2

#安装 docker 作为运行时
yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

yum update && yum install docker-ce-18.06.2.ce

curl -sSL http://oyh1cogl9.bkt.clouddn.com/setmirror.sh | sh -s https://reg-mirror.qiniu.com

systemctl daemon-reload && systemctl restart docker && systemctl enable docker.service

#安装 kubeadm, kubelet 和 kubectl

#配置仓库
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
        http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

#将 SELinux 设置为 permissive 模式(将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

yum install -y kubelet-1.15.3 kubectl-1.15.3 kubeadm-1.15.3 --disableexcludes=kubernetes

systemctl enable kubelet && systemctl start kubelet

#设置 iptables
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

#如果 CRI 不是 docker,则需要修改 /etc/default/kubelet,修改的内容为
KUBELET_EXTRA_ARGS=--cgroup-driver=systemd
#这个文件将会被 kubeadm init 和 kubeadm join 用于为 kubelet 获取 额外的用户参数。

#关闭 swap
vim /etc/fstab #注释 swap 那一行
swapoff -a

初始化(主节点)

#查看所需镜像
kubeadm config images list

#初始化,其中 172.16.1.130 为 master 节点地址;后续使用 calico,需要设置 --pod-network-cidr=192.168.0.0/16
kubeadm init --kubernetes-version=v1.15.3 --apiserver-advertise-address=172.16.1.130 --pod-network-cidr=192.168.0.0/16 --image-repository registry.aliyuncs.com/google_containers

#设定配置文件权限
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#export KUBECONFIG=/etc/kubernetes/admin.conf

#安装calico
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

#查看 nodes 与 pods
kubectl get nodes 
kubectl get po --all-namespaces

加入集群(子节点)

kubeadm join 172.16.1.130:6443 --token q66ds5.rqkex7ut10ewoc7d \
    --discovery-token-ca-cert-hash sha256:cb0152a7fdb13fb29ffd9fc2739426f5da743eb85467889975e986fa50045165

#解决 master 隔离
kubectl taint nodes --all node-role.kubernetes.io/master-
## 输出
node/master untainted
重置集群节点配置(主或子节点)
#主节点
kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node name>
kubeadm reset
rm -rf .kube && yum install ipvsadm -y && ipvsadm --clear
#再重新执行初始化主节点的相关操作

#子节点
kubeadm reset
yum install ipvsadm -y && ipvsadm --clear
#再重新执行加入集群的相关操作

以下都是主节点相关操作

Token

kubeadm token list

kubeadm token create
排错
kubectl get nodes 返回 notReady
journalctl -f -u kubelet

如果出现 

Unable to update cni config: no valid networks found in /etc/cni/net.d

unset http_proxy https_proxy

 

© 著作权归作者所有

lemos
粉丝 10
博文 208
码字总数 99924
作品 0
芜湖
后端工程师
私信 提问
从0到1使用Kubernetes系列(二)——安装工具介绍

本文是Kubernetes系列的第二篇,将介绍使用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用。 主要内容包括: Kubeadm Kubeadm是什么 Kubeadm的目标 Kubeadm的子命令 Kubeadm的安装 ...

Choerodon
2018/09/17
1K
1
从0到1使用Kubernetes系列(三)——使用Ansible安装Kubernetes集群

上一篇文章《从0到1使用Kubernetes系列(二):安装工具介绍》中,说到了Ansible的功能以及使用Ansible进行集群部署的优势,接下来将在本文中介绍如何通过Virtualbox + Vagrant启动CentOS虚拟...

Choerodon
2018/11/05
215
0
Kubernetes :Launcher 基于 kubeadm 的部署工具

支持的集群类型 单主机集群 可增删主节点的高可用集群 可增删主节点的高可用集群 用途:建议用户在生产环境中使用 功能:高可用的Etcd集群;支持至少2个Master节点;支持高可用的Vespace存储...

店家小二
2018/12/14
0
0
使用Kubeadm构建Kubernetes集群

目录 写在前面 环境 本次安装的版本 最低要求 安装前准备 安装docker 安装kubeadm相关 初始化集群 安装网络插件 添加节点 总结 写在前面 参考k8s中文社区的文档,搭建一下K8s的集群。使用Kub...

OrangeLoveMilan
2017/12/28
0
0
kubeadm 安装 Kubernetes 1.6.2 过程中的一些坑

因为一些莫可名状的原因,国内网络使用 Kubeadm 颇有难度,这里大概说一下过程中的一些坑。 主体流程遵循官网指南:https://kubernetes.io/docs/getting-started-guides/kubeadm/ 1/4 准备工...

店家小二
2018/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zk中选举Leader时的网络IO QuorumCnxManager解析

每台服务启动过程中,会启动一个QuorumCnxManager,负责各台服务器之间底层Leader选举过程中的网络通信 当集群中有服务器服务中断时,zk会重新选举leader 内部类 Message定义消息结构 包含了...

writeademo
13分钟前
2
0
使用mdBook 替代 gitbook。

###** 为什么要替代gitbook** gitbook 有个模板问题:如果md文件中有连续的大括号(比如:&{{父亲 40}}),gitbook会把{{ 父亲 40 }}中的父亲 40当做一个模板变量。如果这个变量不存在,会报...

王坤charlie
16分钟前
2
0
TL-A7HSAD采集卡硬件的处理器、NOR FLASH、DDR3

TL-A7HSAD是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的高速数据采集卡,可配套广州创龙TMS320C6655、TMS320C6657、TMS320C6678开发板使用。该采集卡包含1个双通道250MSPS*12Bit的高...

Tronlong创龙
28分钟前
3
0
项目启动报fastjson版本可能过低

进行项目启动的过程中,之前都正常,这次启动突然就失败了: 查看日志说的是版本过低,后来查看官方网站版本,替换了最新版本: 选择了最新版本的1.2.60,1.2.62尝试后都不行,后来查看网上搜...

aiChuang
28分钟前
2
0
McDonald’s is using Alexa and Google to accepting job applications

McDonald’s today announced a new initiative the fast food chain is calling the “Apply Thru,” in which owners of Amazon Alexa or Google Assistant devices can begin job applic......

wowloop
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部