[转] CentOS7 用 kubeadm 快速安装 Kubernetes v1.13.4 最新教程
【转 + 编辑】【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 最新教程的更多相关文章
- [转帖]centos7 使用kubeadm 快速部署 kubernetes 国内源
centos7 使用kubeadm 快速部署 kubernetes 国内源 https://www.cnblogs.com/qingfeng2010/p/10540832.html 前言 搭建kube ...
- centos7 使用kubeadm 快速部署 kubernetes 国内源
前言 搭建kubernetes时看文档以及资料走了很多弯路,so 整理了最后成功安装的过程已做记录.网上的搭建文章总是少一些步骤,想本人这样的小白总是部署不成功(^_^). 准备两台或两台以上的虚拟机 ...
- kubeadm安装kubernetes V1.11.1 集群
之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方 ...
- Centos7 使用 kubeadm 安装Kubernetes 1.13.3
目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...
- 使用kubeadm安装kubernetes v1.14.1
使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ⼀ 一台或多台运⾏行行着下列列系统的机器器: Ubuntu 16.04+ Debi ...
- 使用 kubeadm 安装 kubernetes v1.16.0
近日通过kubeadm 安装 kubernetes v1.16.0,踩过不少坑,现记录下安装过程. 安装环境: 系 统:CentOS Linux release 7.6 Docke ...
- Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群
Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...
- Centos7 二进制安装 Kubernetes 1.13
目录 1.目录 1.1.什么是 Kubernetes? 1.2.Kubernetes 有哪些优势? 2.环境准备 2.1.网络配置 2.2.更改 HOSTNAME 2.3.配置ssh免密码登录登录 2 ...
- [转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群
CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146 一.概述 kubernetes 1.13 ...
随机推荐
- Facebook对MySQL全表扫描性能的改进
原文博客如下: http://yoshinorimatsunobu.blogspot.com/2013/10/making-full-table-scan-10x-faster-in.html 如下是 ...
- Java程序设计11——GUI设计与事件处理B
4 Java事件模型的流程 为了使图形界面能够接收用户的操作,必须给各个组件加上事件处理机制. 在事件处理的过程中,主要涉及3类对象: 1.Event Source(事件源):事件发生的场所,通常就是 ...
- 【转】简说GNU, GCC and MinGW (Lu Hongling)
原地址:https://my.oschina.net/u/588967/blog/73478 GNU, GCC, MinGW是开源社区常常要遇到的概念. 网上一般的解释比较繁琐, 让人如坠云雾. 本文 ...
- 进入docker的4种方式
在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进入Docker容器比较常见的几种 ...
- linux 下 WebSphere日志中文乱码
管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm参数设 ...
- windows下Apache的虚拟主机配置
1.Apache虚拟主机: 在Apache上有关于虚拟主机的具体说明,具体可以参考Apache手册,这里简单的说一下虚拟主机主要分为两种: 1.基于主机名的虚拟主机(一个IP地址,多个网站) 2.基于 ...
- POJ2031 Building a Space Station 2017-04-13 11:38 48人阅读 评论(0) 收藏
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8572 Accepte ...
- Modelsim设置数据以模拟波形显示
选中希望以模拟波形显示的信号,右击选择format—>Analog(automatic) 如果你的数据是用无符号数表示一个完整的波形的,那么可能显示出来的波形样子是下面的样子,不过不要紧,这是因 ...
- CodeForces - 669D——(思维题)
Little Artem is fond of dancing. Most of all dances Artem likes rueda — Cuban dance that is danced b ...
- ERROR Function not available to this responsibility.Change responsibilities or contact your System Administrator.
APPLIES TO: Navigation: Help > Diagnostics > Custom Code > Personalize or Help > Diag ...