使用kubeadm安装kubenetes
一、环境
关闭防火墙和selinux
禁用swap
服务器配置,至少2核2G
所有节点
#所有节点 echo net.bridge.bridge-nf-call-iptables = >>/etc/sysctl.conf
echo net.ipv4.ip_forward= >>/etc/sysctl.conf
echo net.bridge.bridge-nf-call-iptables= >>/etc/sysctl.conf
echo net.bridge.bridge-nf-call-ip6tables= >>/etc/sysctl.conf
echo vm.swappiness= >>/etc/sysctl.conf sysctl -p #有swap的话要关闭
#swapoff -a
#sed -i '/swap/s/^/#/' /etc/fstab
#关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config #ipvs相关
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod /etc/sysconfig/modules/ipvs.modules
bash /etc/sysconfig/modules/ipvs.modules
lsmod | grep -e ip_vs -e nf_conntrack_ipv4 #配置源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat>>/etc/yum.repos.d/kubrenetes.repo<<EOF
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF #下载服务
#查看docker-ce版本
yum list docker-ce.x86_64 --showduplicates |sort -r
#k8s1.14最高支持18.09版本的docker
#yum install -y --setopt=obsoletes= docker-ce-18.09.-.el7
yum install kubelet kubeadm kubectl -y
yum -y install ipvsadm ipset
master节点执行操作
#启动服务
systemctl restart docker
systemctl enable docker
systemctl enable kubelet && systemctl start kubelet #kubeadm初始化
kubeadm init --kubernetes-version=v1.18.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
#国内环境安装
# kubeadm init --kubernetes-version=v1.18.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' #记录初始化后的kubeadm join 信息
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config #安装flannel网络(也可以安装其他网络)
#wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#kubectl apply -f kube-flannel.yml
#安装calico网络
wget https://docs.projectcalico.org/manifests/calico.yaml
#更换网段
sed -i "s#192.168.0.0/16#10.244.0.0/16#g" calico.yaml
#导入
kubectl apply -f calico.yaml
node节点操作
#启动服务
systemctl restart docker
systemctl enable docker #执行master上显示的kubeadm join命令 (类似如下)
kubeadm join 172.31.250.160:6443 --token fx3ua3.4cxlvfnbrhiwpnj8 --discovery-token-ca-cert-hash sha256:1ac1ece9c7b61fb88208680ba9e864d3a496a81be4bc2212833327b14d0991bf
在master端使用kubectl get node 查看即可
[root@k8s-m ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-m Ready master 12m v1.18.0
node Ready <none> 9m22s v1.18.0
kube-proxy 开启 ipvs
改ConfigMap的kube-system/kube-proxy中的config.conf,mode: “ipvs”
[root@k8s-m ~]kubectl edit cm kube-proxy -n kube-system
......
ipvs:
excludeCIDRs: null
minSyncPeriod: 0s
scheduler: ""
strictARP: false
syncPeriod: 0s
tcpFinTimeout: 0s
tcpTimeout: 0s
udpTimeout: 0s
kind: KubeProxyConfiguration
metricsBindAddress: ""
mode: "ipvs" #改成这样
删除原先的kube-proxy的pod
[root@k8s-m ~]# kubectl get pods -n kube-system|grep proxy
kube-proxy-94cdw / Running 102m
kube-proxy-sgdzw / Running 45m
[root@k8s-m ~]# kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'
pod "kube-proxy-94cdw" deleted
pod "kube-proxy-sgdzw" deleted
[root@k8s-m ~]# kubectl get pods -n kube-system|grep proxy
kube-proxy-pmntz 1/1 Running 0 56s
kube-proxy-xbxxb 1/1 Running 0 58
使用ipvsadm测试,可以查看之前创建的Service已经使用LVS创建了集群
[root@k8s-m ~]# ipvsadm -Ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.96.0.1: rr
-> 10.0.0.100: Masq
TCP 10.96.0.10: rr
-> 10.244.167.129: Masq
-> 10.244.167.130: Masq
TCP 10.96.0.10: rr
-> 10.244.167.129: Masq
-> 10.244.167.130: Masq
UDP 10.96.0.10: rr
-> 10.244.167.129: Masq
-> 10.244.167.130: Masq
使用kubeadm安装kubenetes的更多相关文章
- CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)
安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...
- 使用kubeadm安装kubernetes1.12.1
kubeadm是kubernetes官方用来自动化高效安装kubernetes的工具,手动安装,特别麻烦. 使用kubeadm安装无疑是一种不错的选择. 1.环境准备 1.1系统配置 系统是CentO ...
- k8s记录-kubeadm安装(二)(转载)
kubeadm安装安装环境(vm6.5下虚拟机3台,centos 7.4):master:10.20.0.191Node1:10.20.0.192Node2:10.20.0.193 1.安装虚拟机,配 ...
- 利用shell脚本使用kubeadm部署kubenetes 1.18.6集群环境
# README # 此脚本需要在master节点上使用 # 注意root密码,请提前修改 # 个人实验环境,注意机器最低配置:master(2G内存,1cpu2核心,否则集群会创建失败),node( ...
- Centos7 使用 kubeadm 安装Kubernetes 1.13.3
目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...
- kubernetes系列03—kubeadm安装部署K8S集群
本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...
- kubeadm安装kubernetes-v1.13.1
kubeadm安装kubernetes-v1.13.1 centos虚拟机使用kubeadm安装k8s-v1.13.1. 机器信息如下: 主机名 ip master 192.168.239.200 n ...
- Kubeadm安装的K8S集群1年证书过期问题的解决思路
这个问题,很多使用使用kubeadm的用户都会遇到. 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实. 还是使用kubeadm的命令操作,比较自然一点. 当然,自行生成一套证书,也 ...
- kubeadm安装kubernetes V1.11.1 集群
之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方 ...
随机推荐
- Python+Pycharm—学习1—封装&导入
一.封装 目的: 写了一个复杂功能的实现,下次有相同的需求时可以直接导入这个包来使用.就可以达到复用的目的了.通俗的来讲就是打包.(以下用四则运算举例) 方案: 1.1.新建python工程,新建一个 ...
- Java的错误类型
程序的错误分为:编译期语法错误.运行期异常错误和运行期逻辑错误 (1)编译期语法错误可以借助Eclipse的帮助方便地定位错误,并进行修改 如: (2)运行期异常,即 没有语法错误,编译可以通过,但运 ...
- nginx指定配置文件启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- 不可变对象和Biulder模式(面试问题)
String就是一个典型的不可变对象.外界的操作不能改变它,如果尝试改变都会返回一个新的String对象. 具体实现起来就是把属性全部变成private 和 final的,这个类也是final的不可继 ...
- vue 项目中添加阿里巴巴矢量图
1. 选择需要的图标,添加到购物车 2. 打开购物车,添加至我的项目 3. 打开项目列表 - 更多操作 - 编辑项目 修改FontClass/Symbol前缀,自定义一个名称,例如:v-icon-cu ...
- CAP理论与分布式事务解决方案
微服务系统所设计的系统是分布式系统.分布式系统有一个著名的CAP理论,即同时满足"一致性""可用性"和"分区容错"是一件不可能的事.CAP理 ...
- 【开源】微信小程序、小游戏以及 Web 通用 Canvas 渲染引擎 - Cax
Cax 小程序.小游戏以及 Web 通用 Canvas 渲染引擎 Github → https://github.com/dntzhang/cax 点我看看 DEMO 小程序 DEMO 正在审核中敬请 ...
- Centos 7安装RabbitMQ 3.7.8版本(单机版)-不使用RPM
RabbitMQ是目前非常热门的消息中间件,凭借其高可靠.高扩展.高可用及丰富的功能特性:TTL.死信队列.延迟队列.优先级队列.消息持久化.镜像队列. 消息中间件是指利用高效可靠的消息传递机制进行与 ...
- CSS Modules入门教程
为什么引入CSS Modules 或者可以这么说,CSS Modules为我们解决了什么痛点.针对以往我写网页样式的经验,具体来说可以归纳为以下几点: 全局样式冲突 过程是这样的:你现在有两个模块,分 ...
- js实现活动倒计时
let startTime = 1527647143949; // 开始时间 var time = new Countdown('timer',startTime); function Countdo ...