kubernetes部署1.15.0版本
部署环境 centos7.4
master01: 192.168.85.110
node01: 192.168.85.120
node02: 192.168.85.130
所有节点都要写入hosts
[root@master01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
master01: 192.168.85.110
node01: 192.168.85.120
node02: 192.168.85.130
以下都要在所有节点上执行
准备docker yum仓库
准备k8s yum仓库
配置docker的yum库
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
配置k8s的yum库
/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
enabled=1
所有节点安装
安装必备软件
yum install lrzsz wget vim -y
kubeadm部署
yum 安装docker
yum -y install docker-ce
编辑docker的环境变量
如果有HTTP代理,可以添加自己的代理,没有就忽略
vim /usr/lib/systemd/system/docker.service
Environment="NO_PROXY=127.0.0.0/8"
docker国内加速
mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://lvb4p7mn.mirror.aliyuncs.com"]
}
加载环境变量
systemctl daemon-reload
启动docker并设置开机启动
systemctl start docker
systemctl enable docker
kubeadm部署
yum 安装 kubeadm
yum -y install kubeadm-1.15.0-0.x86_64 kubectl-1.15.0-0.x86_64 kubelet-1.15.0-0.x86_64 kubernetes-cni-0.7.5-0.x86_64
swap没关的话就忽略swap参数
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
KUBE_PROXY_MODE=ipvs
开机启动kubelet
systemctl enable kubelet
镜像加载
kubeadm镜像安装
先提前下载镜像k8s-1.15.0.tar.gz
链接: https://pan.baidu.com/s/1AhDsQHUIMd0CQufGteFSXw 提取码: vshs
上传到各节点
各节点都要加载镜像
docker load -i k8s-1.15.0.tar.gz
flannel镜像安装
先提前下载镜像flannel-v0.11.0.tar.gz
链接: https://pan.baidu.com/s/1QEssOf2yX1taupQT4lTxQg 提取码: x42r
各节点都要加载镜像
docker load -i flannel-v0.11.0.tar.gz
kubectl命令自动补全
yum install bash-completion* -y
##写入环境变量
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
部署k8s
master节点部署
kubeadm 初始化
kubeadm init --kubernetes-version=v1.15.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=all
初始化完成后
记住节点要加入的token
kubeadm join 192.168.85.110:6443 --token fo0kd9.ocdrd0obki28g76i --discovery-token-ca-cert-hash sha256:9a5b3ec15c16926e667281cda008b0b550ed5404628453929b0c2a551cbb0bfd -- ignore-preflight-errors=all
按照要求执行三个步骤
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
检查集群健康状态
[root@master01 ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
master部署网络插件flannel
[root@master01 ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
node节点部署
各节点利用token部署
kubeadm join 192.168.85.110:6443 --token fo0kd9.ocdrd0obki28g76i --discovery-token-ca-cert-hash sha256:9a5b3ec15c16926e667281cda008b0b550ed5404628453929b0c2a551cbb0bfd --ignore-preflight-errors=all
默认token的有效期为24小时,当过期之后,该token就不可用了,以后加入节点需要新token
master重新生成新的token
[root@master01 ~]# kubeadm token create
905hgq.1akgmga715dzooxo
[root@master01 ~]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
905hgq.1akgmga715dzooxo 23h 2019-06-23T15:18:24+08:00 authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
获取ca证书sha256编码hash值
[root@master01 ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
2db0df25f40a3376e35dc847d575a2a7def59604b8196f031663efccbc8290c2
利用新token加入集群
kubeadm join 192.168.85.110:6443 --token 905hgq.1akgmga715dzooxo \
--discovery-token-ca-cert-hash sha256:2db0df25f40a3376e35dc847d575a2a7def59604b8196f031663efccbc8290c2 \
--ignore-preflight-errors=all
最后查看各节点是否就绪
[root@master01 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master01 Ready master 3m1s v1.15.0
node01 Ready <none> 72s v1.15.0
node02 Ready <none> 54s v1.15.0
开启ipvs
加载ipvs
内核4.19以上是nf_conntrack,4.19以下是 nf_conntrack_ipv4,其他不变
[root@master01 ~]# uname -r
5.2.2-1.el7.elrepo.x86_64
[root@master01 ~]# cat /etc/sysconfig//modules/ipvs.modules
#!/bin/bash
module=(ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
ip_vs_lc
br_netfilter
nf_conntrack)
for kernel_module in ${module[@]};do
/sbin/modinfo -F filename $kernel_module |& grep -qv ERROR && echo $kernel_module >> /etc/modules-load.d/ipvs.conf || :
done
ipvs_modules_dir="/usr/lib/modules/5.2.2-1.el7.elrepo.x86_64/kernel/net/netfilter/ipvs"
for i in `ls $ipvs_modules_dir | sed -r 's#(.*).ko#\1#'`; do
/sbin/modinfo -F filename $i &> /dev/null
if [ $? -eq 0 ]; then
/sbin/modprobe $i
fi
done
[root@master01 ~]# lsmod | grep ip_vs
ip_vs_wlc 16384 0
ip_vs_sed 16384 0
ip_vs_pe_sip 16384 0
nf_conntrack_sip 32768 1 ip_vs_pe_sip
ip_vs_ovf 16384 0
ip_vs_nq 16384 0
ip_vs_mh 16384 0
ip_vs_lblcr 16384 0
ip_vs_lblc 16384 0
ip_vs_ftp 16384 0
nf_nat 40960 4 ip6table_nat,iptable_nat,xt_MASQUERADE,ip_vs_ftp
ip_vs_fo 16384 0
ip_vs_dh 16384 0
ip_vs_lc 16384 0
ip_vs_sh 16384 0
ip_vs_wrr 16384 0
ip_vs_rr 16384 4
ip_vs 151552 35 ip_vs_wlc,ip_vs_rr,ip_vs_dh,ip_vs_lblcr,ip_vs_sh,ip_vs_ovf,ip_vs_fo,ip_vs_nq,ip_vs_lblc,ip_vs_pe_sip,ip_vs_wrr,ip_vs_lc,ip_vs_mh,ip_vs_sed,ip_vs_ftp
nf_conntrack 139264 6 xt_conntrack,nf_nat,nf_conntrack_sip,nf_conntrack_netlink,xt_MASQUERADE,ip_vs
nf_defrag_ipv6 24576 2 nf_conntrack,ip_vs
libcrc32c 16384 4 nf_conntrack,nf_nat,xfs,ip_vs
[root@master01 ~]# kubectl -n kube-system edit configmaps kube-proxy
kind: KubeProxyConfiguration
metricsBindAddress: 127.0.0.1:10249
mode: "ipvs" ### 添加ipvs就行
安装ipvsadm
yum install ipvsadm ipset sysstat conntrack libseccomp conntrack-tools socat -y
删除原来的kube-proxy,重新加载kube-proxy
[root@master01 ~]# kubectl delete daemonsets kube-proxy -n kube-system
[root@master01 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.96.0.1:443 rr
-> 192.168.48.101:6443 Masq 1 2 0
TCP 10.96.0.10:53 rr
-> 10.244.0.3:53 Masq 1 0 0
-> 10.244.1.3:53 Masq 1 0 0
TCP 10.96.0.10:9153 rr
-> 10.244.0.3:9153 Masq 1 0 0
-> 10.244.1.3:9153 Masq 1 0 0
UDP 10.96.0.10:53 rr
-> 10.244.0.3:53 Masq 1 0 0
-> 10.244.1.3:53 Masq 1 0 0
原文:https://blog.csdn.net/tangwei0928/article/details/93377100
kubernetes部署1.15.0版本的更多相关文章
- 2、kubeadm快速部署kubernetes(v1.15.0)集群190623
一.网络规划 节点网络:192.168.100.0/24 Service网络:10.96.0.0/12 Pod网络(默认):10.244.0.0/16 二.组件分布及节点规划 master(192.1 ...
- CentOS 7.5 通过kubeadm部署k8s-1.15.0
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验k ...
- Kubernetes部署通用手册 (支持版本1.19,1.18,1.17,1.16)
Kubernetes平台环境规划 操作环境 rbac 划分(HA高可用双master部署实例) 本文穿插了ha 高可用部署的实例,当前章节设计的是ha部署双master 部署 内网ip 角色 安装软件 ...
- Kubernetes 部署 Kubernetes-Dashboard v2.0.0 尝鲜
目录· . 一.简介· . 二.兼容性· . 三.部署 Kubernetes Dashboard· . 1.Dashboard RBAC· . 2.创建 ConfigMap.Secret· . 3.k ...
- GeoServer 2.15.0版本跨域问题解决方法
geoserver默认不开启跨域设置,开启步骤如下: 1.修改配置文件web.xml,该配置文件的路径如下 \webapps\geoserver\WEB-INF\web.xml 2.搜索:cross- ...
- 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布
新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...
- CentOS 6.4编译安装和部署Zabbix 2.0版本监控(中文)
[一].zabbix简介 zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级开元解决方案 zabbix由2部分构成,zabbix_server和可选组件zabbix_agen ...
- 阿里云centos7.4安装并部署svn1.10.0版本(配置多仓库,加入开机自启动)
如何安装最新版本 1.10.0: 如果已安装旧版本,先卸载 yum remove subversion* 查看当前可安装的版本 yum list | grep subversion 可以去官网下载安装 ...
- Drools 7.15.0 docker容器方式部署
关于drools的相关介绍就不再赘述了,关于drools网上的资料都很少,或者都有些老了,最近折腾了一下,记录下安装部署的过程,希望能节省下大家的时间. 一.快速部署 1.拉取基础镜像,命令如下: d ...
- Altera Quartus II 15.0安装
写在前面的话 开始学习之前,我们首先应该选择并安装好自己的开发工具,那么我们用什么软件来编译代码呢?梦翼师兄推荐给大家的是Altera 目前最新的Quartus II 15.0 版本,当然啦,这 ...
随机推荐
- 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
在AI技术飞速发展的今天,大语言模型(LLM)的应用越来越广泛,但高昂的使用成本常常让个人开发者和小型团队望而却步.今天,我要为大家介绍一个非常实用的开源项目--DeepSeek-Free-API,它 ...
- 数字先锋 | 央企首批!天翼云助力中国石化率先完成全尺寸DeepSeek国产化部署!
自2025年春节以来,DeepSeek的全新开源推理模型在全球范围内迅速走红,成为各界关注的焦点,同时引发国产AI发展浪潮.众多国内企业相继接入DeepSeek系列模型,以提升企业智能化水平,加速业务 ...
- [FJOI2016] 建筑师 题解
显然有一个 \(dp\) 思路.设 \(f_{i,j}\) 表示现在修了 \(i\) 栋楼,从第一栋楼外侧能看到 \(j\) 栋楼的方案数,显然有: \[f_{i,j}=\begin{cases}[i ...
- 最优化算法动量法Momentum
动量法的结论: 1.动量方法主要是为了解决Hessian矩阵病态条件问题(直观上讲就是梯度高度敏感于参数空间的某些方向)的. 2.加速学习 3.一般将参数设为0.5,0.9,或者0.99,分别表示最大 ...
- 使用form-create生成表单组件
FormCreate 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持5个UI框架,并且支持生成任何 Vue 组件.内置20种常用表单组件和自定义组件,再复杂的 ...
- 基于Element的el-input实现一个可以显示千分位符的金额输入框
直接上代码 1 <template> 2 <!-- 定义一个 Element UI 的输入框组件 --> 3 <el-input 4 v-model="form ...
- angular双向数据绑定踩坑记:
在angular中使用ngModel时出现了一个报错error NG8002: Can't bind to 'ngModel' since it isn't a known property of ' ...
- 大量数据topk-分桶+堆+多路并归解决方案
利用分桶.堆与多路归并解决 TopK 问题:结果处理阶段解析 在处理大规模数据时,TopK 问题是一个常见且具有挑战性的任务,即从海量数据中找出最大(或最小)的 K 个元素.为了高效地解决这个问题,我 ...
- Devops工程师需要具备的10项技能
Facebook.Amazon和Microsoft等公司正在大量使用DevOps技术来确保软件的一致交付,DevOps的的工作机会和所需要的技能集也是越来越多. 在这里,我们将讨论Devops工程师需 ...
- Kylin-Server-V10-SP3物理机安装简要过程
1.下载镜像 链接: https://eco.kylinos.cn/partners/mirror.html?class_id=1&query_key=V10 选择: 银河麒麟高级服务器操作系 ...