【转 + 编辑】【From】 https://www.jianshu.com/p/4d61f18bc62d  , https://www.jianshu.com/p/5ff6e26d1912

时间是2019年3月18日。测试安装的Centos版本是 7.4.1708 ,k8s 以及 kubeadm 版本为 1.13.4 ,docker 版本为 18.06 ,Flannel 版本为 0.11.0。

过程主要参考以上文章,但结合实测情况,做了一些修改或者编辑。以下第一步的安装脚本可以直接用 root 整个执行,无需FQ,但依赖第三方仓库。

第一步: 安装 K8S 和 kubeadm (所有节点)

### 关闭 selinux
setenforce #实时动态关闭 selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #禁止重启后自动开启

### 关闭交换分区
swapoff -a #实时动态关闭交换分区
sed -i '/ swap / s/^/#/' /etc/fstab #禁止重启后自动开启

### 网络配置文件
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables =
net.bridge.bridge-nf-call-iptables =
net.ipv4.ip_forward =
vm.swappiness=
EOF modprobe br_netfilter #执行该命令 如果不执行就会在应用k8s.conf时出现加载错误
sysctl -p /etc/sysctl.d/k8s.conf #应用配置文件

### 配置资源地址
yum install -y wget #安装wget命令行
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #配置yum源 yum makecache #更新缓存
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装yum扩展工具
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #配置docker下载的地址

### 安装Docker
yum list docker-ce --showduplicates|sort -r #展示版本列表 #yum install –y docker-ce #默认安装最新版,也可以指定版本下载
yum install -y docker-ce-18.06.3.ce-3.el7 systemctl start docker #启动docker
systemctl enable docker #将docker加入到开机启动 docker version #查看docker启动情况 和版本信息 ### 配置docker国内镜像 mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

service docker restart
### 配置k8s资源的下载地址
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=
gpgcheck=
repo_gpgcheck=
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF ### 安装 kubelet kubeadm kubectl
yum install -y kubelet kubeadm kubectl systemctl enable kubelet.service #开机启动

### 修改10-kubeadm.conf 文件
docker info | grep -i cgroup #查看 Cgroup Driver: cgroupfs 有可能你的与这个不一样是System 这个地方决定 下面的cgroup-driver 值 一定要保证这两个地方相同 # vi /etc/systemd/system/kubelet.service.d/-kubeadm.conf #编辑文件 # Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
# Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false" # 在编辑文件中添加上面内容 注意一定要保证-cgroup-driver=cgroupfs的值与docker哪里查询出来的一样 ### 查看需要安装的k8s必须镜像与 安装镜像 kubeadm config images list #可以查看所需安装的镜像文件 kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#mirrorgooglecontainers#k8s.gcr.io#2' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker rmi ", $1":"$2}' |sh -x COREDNS_VER=`docker images | grep coredns | awk '{print $2}'` docker pull coredns/coredns:${COREDNS_VER}
docker tag coredns/coredns:${COREDNS_VER} k8s.gcr.io/coredns:${COREDNS_VER}
docker rmi coredns/coredns:${COREDNS_VER} #coredns 的版本号要与你查询所需安装镜像的版本号相同,我这里需要的是1.2.6 docker images | grep k8s.gcr.io #查看所有镜像是否都已经pull下来了

#k8s.gcr.io/kube-proxy v1.13.4 fadcc5d2b066 2 weeks ago 80.3MB
#k8s.gcr.io/kube-apiserver v1.13.4 fc3801f0fc54 2 weeks ago 181MB
#k8s.gcr.io/kube-controller-manager v1.13.4 40a817357014 2 weeks ago 146MB
#k8s.gcr.io/kube-scheduler v1.13.4 dd862b749309 2 weeks ago 79.6MB
#k8s.gcr.io/coredns 1.2.6 f59dcacceff4 4 months ago 40MB
#k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 5 months ago 220MB
#k8s.gcr.io/pause 3.1 da86e6ba6ca1 15 months ago 742kB

第二步: 初始化 (只在主节点Master上面操作)

### 先配置好以下信息
K8S_VER=v1.13.4
MASTER_IP=192.168.2.108 #只在Master的主机上面执行 版本信息与你要安装的相同
kubeadm init --kubernetes-version=${K8S_VER} --pod-network-cidr=10.244.0.0/ --apiserver-advertise-address=${MASTER_IP} # 当出现 类似 如下说明 master 安装成功
# kubeadm join --token 19f284.da47998c9abb01d3 192.168.1.111: --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538 #然后执行 安装成功提示的 命令行 这部分执行你安装成功后的部分 可能每个人的有所不同
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#如果是国内 通过执行yml无法直接下载的话执行下面命令
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker rmi registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64


#安装Flannel


mkdir -p ~/k8s/
cd k8s/
ll


wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml


kubectl apply -f kube-flannel.yml


#安装成功后查看pod
kubectl get pod -n kube-system

NAME READY STATUS RESTARTS AGE
coredns-86c58d9df4-j9g8d 1/1 Running 0 128m
coredns-86c58d9df4-pg45w 1/1 Running 0 128m
etcd-k8s1 1/1 Running 0 127m
kube-apiserver-k8s1 1/1 Running 0 127m
kube-controller-manager-k8s1 1/1 Running 0 127m
kube-flannel-ds-amd64-7btlw 1/1 Running 0 91m
kube-flannel-ds-amd64-9vq42 1/1 Running 0 106m
kube-flannel-ds-amd64-kdf42 1/1 Running 0 90m
kube-proxy-dtmfs 1/1 Running 0 128m
kube-proxy-p76tc 1/1 Running 0 90m
kube-proxy-xgw28 1/1 Running 0 91m
kube-scheduler-k8s1 1/1 Running 0 128m


#全部Running则表示 成功了


#如果发现哪一项的STATUS的状态不是Running,执行如下命令
kubectl describe pod [这里是复制上面的Name列] -n kube-system


#这里会看到具体的错误内容,然后根据提示进行解决。

第三步: 加入node节点,检查


### 执行master 安装成功后的 kubeadm join命令 注意是你自己的,下面是举例
kubeadm join --token 19f284.da47998c9abb01d3 192.168.1.111:6443 --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538

### 在node节点上加入flannel的镜像,由于正常拉不到,也要绕路
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker rmi registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64


### 主节点查看命令

#命令一

kubectl get cs #显示内容如下说明Master安装没问题

NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health": "true"}

#命令二

kubectl get pod -n kube-system #查看pod状态 下面只是部分pod内容

NAME READY STATUS RESTARTS AGE
coredns-86c58d9df4-j9g8d 1/1 Running 0 128m
coredns-86c58d9df4-pg45w 1/1 Running 0 128m
etcd-k8s1 1/1 Running 0 127m
kube-apiserver-k8s1 1/1 Running 0 127m
kube-controller-manager-k8s1 1/1 Running 0 127m

#命令三

kubectl get node #查看节点状态

NAME STATUS ROLES AGE VERSION
k8s1 Ready master 131m v1.13.1
k8s2 Ready <none> 93m v1.13.1
k8s3 Ready <none> 93m v1.13.1


#如果你添加了节点里面看的话 可能还未初始化,显示的是NoReady多等会儿。

 

卸载:

kubectl delete node --all
kubeadm reset -f
modprobe -r ipip
lsmod yum remove -y kubelet kubeadm kubectl docker-ce docker-ce-cli
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

 

[转] CentOS7 用 kubeadm 快速安装 Kubernetes v1.13.4 最新教程的更多相关文章

  1. [转帖]centos7 使用kubeadm 快速部署 kubernetes 国内源

    centos7 使用kubeadm 快速部署 kubernetes 国内源 https://www.cnblogs.com/qingfeng2010/p/10540832.html 前言 搭建kube ...

  2. centos7 使用kubeadm 快速部署 kubernetes 国内源

    前言 搭建kubernetes时看文档以及资料走了很多弯路,so 整理了最后成功安装的过程已做记录.网上的搭建文章总是少一些步骤,想本人这样的小白总是部署不成功(^_^). 准备两台或两台以上的虚拟机 ...

  3. kubeadm安装kubernetes V1.11.1 集群

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

  4. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

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

  5. 使用kubeadm安装kubernetes v1.14.1

    使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ​ ⼀ 一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ​ Debi ...

  6. 使用 kubeadm 安装 kubernetes v1.16.0

    近日通过kubeadm 安装 kubernetes v1.16.0,踩过不少坑,现记录下安装过程. 安装环境: 系           统:CentOS Linux release 7.6 Docke ...

  7. Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群

    Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...

  8. Centos7 二进制安装 Kubernetes 1.13

    目录 1.目录 1.1.什么是 Kubernetes? 1.2.Kubernetes 有哪些优势? 2.环境准备 2.1.网络配置 2.2.更改 HOSTNAME 2.3.配置ssh免密码登录登录 2 ...

  9. [转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群

    CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146   一.概述 kubernetes 1.13 ...

随机推荐

  1. UISwitch的常见属性

    1.onTintColor属性:设置ON一边的背景颜色,默认是绿色. 2.tintColor属性:设置OFF一边的背景颜色,默认是灰色,发现OFF背景颜色其实也是控件”边框“颜色. 3.thumbTi ...

  2. URAL 1996 Cipher Message 3 (FFT + KMP)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意 :给出两个串A , B,每个串是若干个byt ...

  3. D3.js的基础部分之数组的处理 映射(v3版本)

    映射(Map)   映射(Map)是十分常见的一种数据结构,由一系列键(key)和值(value)组成的.每个key对应一个value,根据key可以获取和设定value,也可以根据key来查询val ...

  4. Radius 认证协议介绍-兼rfc导读

    老规矩, 先看维基: 远端用户拨入验证服务(RADIUS, Remote Authentication Dial In User Service)是一个AAA协议,意思就是同时兼顾验证(authent ...

  5. MSP430G2553 Launchpad 硬件I2C驱动

    一.USCI I2C 驱动介绍 对于MSP430G2553,硬件I2C由外设USCI(Universal Serial Communication Interface)提供.USCI又分为USCI_A ...

  6. C# 时间戳与DateTime间的互相转换

    //DateTime转换为时间戳public long GetTimeSpan(DateTime time) { DateTime startTime = TimeZone.CurrentTimeZo ...

  7. 安装OWA2013

    首先可以参考以下博客进行安装 http://www.cnblogs.com/poissonnotes/p/3238238.html 需要特别注意的是,我的SHAREPOINT系统虽然是英文版的,但是同 ...

  8. Oracle数据库02

    EXISTS子查询 特征:将主查询中的数据带到子查询中进行验证,如果验证成功则子查询返回true,当主查询接收到true的时候被验证的数据就显示,如果在子查询中验证失败则返回false,当主查询接收到 ...

  9. 有效单词词广场——算法面试刷题5(for google),考察数学

    给定一个单词序列,检查它是否构成一个有效单词广场.一个有效的单词广场应满足以下条件:对于满足0≤k<max(numRows numColumns)的k,第k行和第k列对应的字符串应该相同,. 给 ...

  10. Redis安装与测试

    ①安装,直接安装版本为4.0.1 sudo apt-get install redis-server 启动: redis-server redis-cli 测试: ②新建Student表 ③查看zha ...