一、环境

关闭防火墙和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的更多相关文章

  1. CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)

    安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...

  2. 使用kubeadm安装kubernetes1.12.1

    kubeadm是kubernetes官方用来自动化高效安装kubernetes的工具,手动安装,特别麻烦. 使用kubeadm安装无疑是一种不错的选择. 1.环境准备 1.1系统配置 系统是CentO ...

  3. k8s记录-kubeadm安装(二)(转载)

    kubeadm安装安装环境(vm6.5下虚拟机3台,centos 7.4):master:10.20.0.191Node1:10.20.0.192Node2:10.20.0.193 1.安装虚拟机,配 ...

  4. 利用shell脚本使用kubeadm部署kubenetes 1.18.6集群环境

    # README # 此脚本需要在master节点上使用 # 注意root密码,请提前修改 # 个人实验环境,注意机器最低配置:master(2G内存,1cpu2核心,否则集群会创建失败),node( ...

  5. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  6. kubernetes系列03—kubeadm安装部署K8S集群

    本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...

  7. kubeadm安装kubernetes-v1.13.1

    kubeadm安装kubernetes-v1.13.1 centos虚拟机使用kubeadm安装k8s-v1.13.1. 机器信息如下: 主机名 ip master 192.168.239.200 n ...

  8. Kubeadm安装的K8S集群1年证书过期问题的解决思路

    这个问题,很多使用使用kubeadm的用户都会遇到. 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实. 还是使用kubeadm的命令操作,比较自然一点. 当然,自行生成一套证书,也 ...

  9. kubeadm安装kubernetes V1.11.1 集群

    之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方 ...

随机推荐

  1. UVA129-Krypton Factor(搜索剪枝)

    Problem UVA129-Krypton Factor Accept:1959  Submit:10261 Time Limit: 3000 mSec  Problem Description 通 ...

  2. BZOJ3577:玩手机(最大流,二维ST表)

    Description 现在有一堆手机放在坐标网格里面(坐标从1开始),坐标(i,j)的格子有s_(i,j)个手机. 玩手机当然需要有信号,不过这里的手机与基站与我们不太一样.基站分为两种:发送站和接 ...

  3. 路飞学城-Python开发集训-第3章

    学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...

  4. java 生成txt文件

    FileWriter fileWriter = new FileWriter("C:/Users/li/Desktop/a.txt"); fileWriter.write(“aaa ...

  5. day2-安装python以及基本使用

    安装Python windows 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机]- ...

  6. Python脱产8期 Day08 2019/4/22

    一.三种字符串 1.普通字符串:u'以字符作为输出单位‘  #print(u‘abc’)#用于显示 2.二进制字符串:b'以字节作为输出单位’#用于传输 3.原义字符串:r‘以字符作为输出单位,原样输 ...

  7. mongo中游标

    1.手动循环访问游标 mongo中我们常用的查询方式db.collection.find()方法其实返回的就是游标,只不过我们并未给返回的游标分配变量,我们所看到的的查询数据也就是游标自动迭代得出的( ...

  8. 使用Git进行代码管理的心得--github for windows

    首先简述一下Git进行代码管理的情况 我使用的是github for windows,官网下载的速度太慢,所以用了离线安装包.安装之后会有GitHub和GitShell两个软件,其中Github采用图 ...

  9. 深入理解Java虚拟机(类文件结构+类加载机制+字节码执行引擎)

    目录 1.类文件结构 1.1 Class类文件结构 1.2 魔数与Class文件的版本 1.3 常量池 1.4 访问标志 1.5 类索引.父索引与接口索引集合 1.6 字段表集合 1.7 方法集合 1 ...

  10. Dapper简易教程(翻译自Github上StackExchange/Dapper)

    本文源自:https://github.com/cnxy/Dapper-zh-cn 本博客作者与Github上作者(cnxy)实为同一个作者.由于笔者翻译水平有限,文本中错误难免,欢迎指正! 本文翻译 ...