Kubernetes kubeadm部署
Kubernetes kubeadm部署
一、Docker的安装与设置
1. 安装Docker
安装yum-utils
,并更新docker稳定版的源
sudo yum install -y yum-utils
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
2. 配置Docker
设置Docker仓库镜像
阿里云镜像加速器 (推荐, 需要注册用户)
注册地址: https://cr.console.aliyun.com/cn/instances/mirrors
DaoCloud镜像加速器
加速器地址: https://f1361db2.m.daocloud.io
七牛云镜像加速器
加速器地址: https://reg-mirror.qiniu.com
设置Docker启动方式为systemd
cat <<EOF > /etc/docker/daemon.json
{"registry-mirrors": ["https://f644ijwu.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
或者
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://f644ijwu.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3. Kubernetes下载
Kubernetes 是一个开源系统,用于容器化应用的自动部署、扩缩和管理。它将构成应用的容器按逻辑单位进行分组以便于管理和发现。
- Debian / Ubuntu
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
- CentOS / RHEL / Fedora
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
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
4. kubeadm config
kubeadm config upload from-file:由配置文件上传到集群中生成 ConfigMap。
kubeadm config upload from-flags:由配置参数生成 ConfigMap。
kubeadm config view:查看当前集群中的配置值。
kubeadm config print init-defaults:输出 kubeadm init 默认参数文件的内容。
kubeadm config print join-defaults:输出 kubeadm join 默认参数文件的内容。
kubeadm config migrate:在新旧版本之间进行配置转换。
kubeadm config images list:列出所需的镜像列表。
kubeadm config images pull:拉取镜像到本地。
获取默认的初始化参数文件
kubeadm config print init-defaults > init.default.yaml
kuberbetes master 初始化文件,将下面的内容保存为init-config.yaml备用。
cat << EOF > ./init-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: v1.22.0
networking:podSubnet: "192.168.0.0/16"
EOF
或
vim ./init-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: v1.22.0
networking:podSubnet: "192.168.0.0/16"
目前我找到了如下镜像库:
googlecontainersmirror
registry.aliyuncs.com/google_containers
5. 镜像拉取
通过kubeadm config images pull 拉取进行
kubeadm config images pull --config=init-config.yaml
镜像拉取过程中coredns的tag会有异常
docker image pull registry.aliyuncs.com/google_containers/coredns:1.8.4
docker tag registry.aliyuncs.com/google_containers/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4
6. 运行kubeadm init 命令安装Master
进行master初始化
kubeadm init --config=init-config.yaml
配置.kube
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
这样就在Master上安装了Kubernetes,但在集群内还是没有可用的工作Node,并缺乏对容器网络的配置。
这里需要注意kubeadm init命令执行完成后的最后几行提示信息,其中包含加入节点的指令(kubeadm join)和所需的Token。
此时可以用kubectl命令验证在ConfigMap:
kubectl get -A configmap
可以看到其中生成了名为kubeadm-config的ConfigMap对象。
7. 安装Node,加入集群
在新机器中重复步骤1-5。
- 安装kubeadm和相关工具:
yum install kubelet kubeadm --disableexcludes=kubernetes
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
- 为kubeadm命令生成配置文件。创建文件join-config.yaml,内容如下:
apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
discovery:bootstrapToken:apiServerEndpoint: xx.xx.xx.xx:6443token: xxxxxunsafeSkipCAVerification: truetlsBootstrapToken: xxxxx
- 执行kubeadm join命令,将本Node加入集群:
kubeadm join --config=join-config.yaml
- 或者直接执行master中的输出
kubeadm join 172.24.131.78:6443 --token ghhetg.8v3lhwc9nj9qjp3h \--discovery-token-ca-cert-hash sha256:e9e42677c831d12d594bce6a9ae9b3b5b20fda8d1afa22534099e5fceda93295
8. CNI网络配置
执行kubectl get nodes命令,会发现Kubernetes提示Master为NotReady状态,这是因为还没有安装CNI网络插件:
- 使用 Kubernetes API 数据存储安装 Calico,50 个或更少节点
- 下载 Kubernetes API 数据存储的 Calico 网络清单。
curl https://docs.projectcalico.org/manifests/calico.yaml -O
如果您使用的是 pod CIDR 192.168.0.0/16,请跳到下一步。如果您在 kubeadm 中使用不同的 pod CIDR,则无需更改 - Calico 将根据运行配置自动检测 CIDR。对于其他平台,请确保取消对清单中的 CALICO_IPV4POOL_CIDR 变量的注释,并将其设置为与您选择的 pod CIDR 相同的值。
根据需要自定义清单。
使用以下命令应用清单。
kubectl apply -f calico.yaml
- 或者使用weave网络插件
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Kubernetes kubeadm部署相关推荐
- 云原生|kubernetes|kubeadm部署的集群的100年证书
前言: 首先,先看看minikube这样的开发或者测试使用的kubernetes集群的证书时间: [root@node3 ~]# kubeadm certs check-expiration [che ...
- kubeadm部署kubernetes
kubeadm部署kubernetes kubeadm 部署方式介绍 单master节点环境准备 卸载kubernetes kubeadm init命令文档 kubeadm 部署方式介绍 1.使用ku ...
- 【CentOS】利用Kubeadm部署Kubernetes (K8s)
[CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...
- Kubernetes — 使用 kubeadm 部署高可用集群
目录 文章目录 目录 Kubernetes 在生产环境中架构 高可用集群部署拓扑 1.网络代理配置 2.Load Balancer 环境准备 3.Kubernetes Cluster 环境准备 安装 ...
- Kubeadm 部署企业级高可用Kubernetes(适用于ECS)
Kubeadm 部署企业级高可用Kubernetes1.16(适用ECS) 1.准备工作 介绍 kubernetes 安装有多种选择,本文档教程根据官方教程和企业云上运行的业务场景实践而部署,每个插件 ...
- 【完整记录】使用kubeadm部署kubernetes集群踩坑记录及解决方案
文章目录 搭建集群过程中遇到的问题及解决方案 1. 现有网上的kubernetes集群搭建教程中的kubeadm配置文件版本过老导致出现以下报错: 2. kubeadm init过程中pull镜像超时 ...
- kubeadm部署kubernetes高可用(三主三从)
一. 1.准备 准备6台机器,操作系统CentOS Linux release 7.9.2009 (Core) 硬件配置:16C 32G 硬盘1.6T 集群中所有机器之间网络互通,且可访问外网. 注意 ...
- Kubernetes 一键部署利器:kubeadm
文章目录 集群部署痛点 kubeadm 的工作原理 kubeadm init 的工作流程 kubeadm join 的工作流程 kubeadm 的部署配置参数 集群部署痛点 Kubernetes 的部 ...
- Kubernetes一键部署利器:kubeadm
要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用. 这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位问题,并解决问题. 而更深入的学习容器技术的关键在 ...
最新文章
- python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
- 人会成为虚拟现实中的“机器人代码”吗?
- 开始研究JavaScript
- AntiSamy测试
- python 中的__getattr__和__setattr__
- C语言之函数指针和函数的首地址
- REST:使用Controller端点?
- PHP 免费视频教程
- 查询数据库里所有表名和字段名的语句
- cookie helper.php,CookieHelper cook crud 工具类
- 1.线性回归、梯度下降法、岭回归、LASSO回归、最小二乘法
- 非极大值抑制(Non-Maximum Suppression)
- 做爬虫的一些技术观点-第450期
- 基于 USB 传输的针式打印机驱动程序开发
- QLineEdit控件添加提示语
- 计算机网络技术实训室管理制度,计算机实验室管理制度
- 关闭防火墙linux出错,linux关闭防火墙【应对办法】
- 轻松实现网页中通过链接跳转到QQ聊天界面,通过链接加QQ群,自动打开聊天对话框等等,包含电脑版和手机版的实现,示例部分Android和iOS的代码
- 英语口语275之每日十句口语
- 使用Tomcat插件实现WEB项目热部署
热门文章
- Python小技 不到100行代码制作各种证件照
- 台式计算机关闭屏幕快捷键,多种电脑屏幕关闭方法推荐
- 114.114.114.114和8.8.8.8,哪个DNS好?
- 实验十二 HTTP 协议分析实验
- SylixOS这个操作系统怎么样?
- Talib中文文档(二):Momentum Indicators 动量指标
- win2003 服务器设置 完全版 作者:冰盾防火墙
- macbook 打开以后没有声音,重启以后又好了的解决方法
- Android SVG图片解析Demo
- lisp语言cond和if套用_方案 – if和cond之间的区别?