文档章节

kubernetes 1.8.7 国内安装(kubeadm)

andylo25
 andylo25
发布于 02/05 01:04
字数 1156
阅读 712
收藏 1
点赞 0
评论 0

kubernetes 1.8.7 国内安装(kubeadm)

kubernetes 简称k8s,简单来说就是一个容器编排部署集群工具,你只要做好一个应用镜像,剩下的什么部署、调度、扩容、缩容,就她来了。换句话说,就是你只要写好应用代码,其他运维的事你就别管了。

1. 国内安装的几个问题

一直没时间看看这个东西,最近越来越火,不得不抽点时间瞜一眼,毕竟容器云的天下,k8s也是占了好大一席。 折腾了几天,安装教程倒不少,只是要么比较老,要么得翻墙,下载速度慢得要命,想顺利的安装一个集群还真不那么简单。 不过也好,久病成良医,填的坑多了生的也变熟了。
国内因为Google相关的网站被墙,所以安装并没官网所说的那样一帆风顺。主要有这么几个问题:

  1. k8s的相关安装包,需要引用国内下载镜像,或者直接下载安装包进行手工安装。
  2. k8s的应用pod docker镜像,国内无法直接下载。需要通过dockerhub中转。

2. 安装前准备

为了解决上面几个问题,需要先做一些准备工作。

  1. 下载安装包:
    Ubuntu安装包可以通过中科大的镜像进行下载,当然也可以直接到我的github下进行下载.
  2. docker镜像准备:
    dockerhub上支持通过Dockerfile进行自动构建,在github上建立对应的Dockerfile,通过dockerhub的创建镜像引用github目录,进行自动构建。可参考我的github,还有douckerhub镜像,dockerhub镜像可以直接使用,一会我们安装的时候就是用的这个镜像。

3. 开始安装

192.138.129.133 k8s-master
192.138.129.134 k8s-node01

1. 安装docker

master上执行:

#!/bin/bash
#SET UP THE REPOSITORY
apt-get remove docker docker-engine docker.io
apt-get update
apt-get install -y -q \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

#INSTALL DOCKER CE
apt-get install -y -q docker-ce

2. 安装kubernetes

将下载的zip包解压:

unzip k8s_ubuntu_deb.zip

执行安装脚本:

#!/bin/bash
apt-get install -y -q socat ebtables ethtool
dpkg -i kubernetes-cni_0.5.1-00_amd64.deb
dpkg -i kubelet_1.8.7-00_amd64.deb
dpkg -i kubectl_1.8.7-00_amd64.deb
dpkg -i kubeadm_1.8.7-00_amd64.deb
systemctl enable kubelet
systemctl start kubelet

3. 安装前准备

执行脚本:

#!/bin/bash
ufw disable
# 关闭swap,重启后会失效,可加入到启动脚本rc.local里
swapoff -a
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
# pull镜像重新标记tag
images=(kube-scheduler-amd64:v1.8.7 \
kube-apiserver-amd64:v1.8.7 \
etcd-amd64:3.0.17 \
pause-amd64:3.0 \
k8s-dns-sidecar-amd64:1.14.5 \
k8s-dns-kube-dns-amd64:1.14.5 \
k8s-dns-dnsmasq-nanny-amd64:1.14.5 \
kubernetes-dashboard-amd64:v1.8.1)
for imageName in ${images[@]} ; do
  docker pull andylo25/$imageName
  docker tag andylo25/$imageName gcr.io/google_containers/$imageName
  docker rmi andylo25/$imageName
done

这里拉取镜像的时候可能会比较慢,可以用docker镜像加速

4. 启动集群

#!/bin/bash
kubeadm init --kubernetes-version=v1.8.7 --pod-network-cidr 10.244.0.0/16
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 安装cni插件flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

初始化正常后会在最后的地方一个加入集群的提示命令:
如下:

kubeadm join --token 34fb5a.87ec418b32857c65 192.168.129.133:6443 --discovery-token-ca-cert-hash sha256:da4765f5721db7ed2130c265a71e849005f0334aeb821cd05ec9c9020e036919

5. 加入集群

在新的节点执行安装docker命令,启动docker,将之前下载的安装包上传到该节点:
将下载的zip包解压:

unzip k8s_ubuntu_deb.zip

然后执行如下脚本:

#!/bin/bash
ufw disable
# 关闭swap,重启后会失效,可加入到启动脚本rc.local里
swapoff -a
cat >> /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sysctl -p /etc/sysctl.d/k8s.conf
# 安装k8s相关软件
apt-get install -y -q socat ebtables ethtool
dpkg -i kubernetes-cni_0.5.1-00_amd64.deb
dpkg -i kubelet_1.8.7-00_amd64.deb
dpkg -i kubectl_1.8.7-00_amd64.deb
dpkg -i kubeadm_1.8.7-00_amd64.deb
systemctl enable kubelet
systemctl start kubelet
# pull镜像重新标记tag
images=(kube-proxy-amd64:v1.8.7 \
pause-amd64:3.0 \
kubernetes-dashboard-amd64:1.8.1)
for imageName in ${images[@]} ; do
  docker pull andylo25/$imageName
  docker tag andylo25/$imageName gcr.io/google_containers/$imageName
  docker rmi andylo25/$imageName
done
# 执行加入集群命令
kubeadm join --token 34fb5a.87ec418b32857c65 192.168.129.133:6443 --discovery-token-ca-cert-hash sha256:da4765f5721db7ed2130c265a71e849005f0334aeb821cd05ec9c9020e036919

等待一段时间,在master上执行:

kubectl get node
NAME         STATUS    ROLES     AGE       VERSION
k8s-master   Ready     master    8d        v1.8.7
k8s-node01   Ready     <none>    7d        v1.8.7

如果状态一直NotReady,可以重启一下主机,有可能是网络插件安装的时候初始化失败,重启后会自动重新初始化。

6. 安装kubernetes-dashboard

wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl create -f  kubernetes-dashboard.yaml
# 启动代理
kubectl proxy

通过代理访问dashboard,只能在master上访问:

curl 127.0.0.1:8001/ui

好了,可以通过kubectl执行相关命令来体验k8s的强大了,比如部署应用,自动扩容,灰度发布等等。。。

4.相关附件

我的github之kubernetes

© 著作权归作者所有

共有 人打赏支持
andylo25
粉丝 0
博文 2
码字总数 2894
作品 0
厦门
高级程序员
部署 k8s Cluster(上)- 每天5分钟玩转 Docker 容器技术(118)

我们将部署三个节点的 Kubernetes Cluster。 k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node。 所有节点的操作系统均为 Ubuntu 16.04,当然其他 Linux 也是可以的。 官方安装文档可以...

CloudMAN
01/12
0
0
在阿里云创建Kubernetetes-1.11.0镜像服务(高速)

在阿里云创建Kubernetetes-1.11.0镜像服务(高速) Kubernetetes镜像在国内无法直接访问,导致安装费时、容易出错、难以排查。可以将其抓取到阿里云上面,提前拉取(docker pull)到本地,然...

openthings
07/09
0
0
手工离线部署k8s(v1.9)

手工离线部署k8s(v1.9) 1. 环境准备(采用一个master节点+两个node节点) master 192.168.2.40 node-1 192.168.2.41 node-2 192.168.2.42 绑定hosts 2.将master和node-1、node-2绑定hosts #vi......

yikayi
04/20
0
0
一步步打造专属于自己的Kubernetes-1.8.4集群环境

一 kubernetes kubernetes 以下介绍摘自Wiki Kubernetes (通常称为K8s) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google设计并捐赠给Cloud Native Computing ...

胖宝宝王
2017/12/08
0
0
使用kubeadm部署k8s集群00-缓存gcr.io镜像

使用kubeadm部署k8s集群00-缓存gcr.io镜像 2018/2/7 原因:kubeadm init 时,需要下载一些镜像,但国内网络原因,大家懂的,不容易下载,此时,只能去绕过它。 备注:官方在 1.5 收到阿里一位...

pcnk
02/07
0
0
Kubernetes官方集群部署工具kubeadm原理解析

根据所处环境的不同,Kubernetes集群的安装部署有多种不同的方式。如果是在公有云上还好,一般都会提供相应的安装方案。如果是自行搭建私有环境,可选的安装方案则不尽相同,有时可能需要从零...

Docker
03/30
0
0
cookeem/kubeadm-ha

kubeadm-highavailiability - 基于kubeadm的kubernetes高可用集群部署,支持v1.7.x版本以及v1.6.x版本 中文文档(for v1.7.x版本) English document(for v1.7.x version) 中文文档(for v1.6.x......

cookeem
2017/06/29
0
0
将Kubernetes安装到Docker容器里面

将Kubernetes安装到Docker容器里面,使用DinD(Docker in Docker)完成。 kubeadm-dind-cluster A Kubernetes multi-node cluster for developer of Kubernetes and projects that extend Kube......

openthings
03/16
0
0
kubernetes(5): 安装kubeadm-dind-cluster 遇到的问题,终于跑起来了

本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/80017212 1,关于kubeadm-dind-cluster 昨天研究了下,kubeadm-dind-cluster 。 已经启动了。但是dashboard 没有启动成...

freewebsys
04/20
0
0
centos 7 k8s v1.7 v1.6 搭建记

K8s V1.6 V1.7 部署 一、基础环境 1、主机名 IP hosts 配置 主机名 IP 系统 k8s.master 192.168.1.44 CentOS 7 64 k8s.node1 192.168.1.45 CentOS 7 64 k8s.node2 192.168.1.46 CentOS 7 64 ......

奋怒的菜鸟
2017/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

开篇文章,长期记录安全情形

密码位置 密码位于注释中 密码位于服务器端文件中 通过访问根目录下.htaccess、robots.txt查看禁查路径 密码文件可能存在的路径:/、/extra/、/extras/ 密码加密 binary to base16 sha256 彩虹...

hirainn
18分钟前
0
0
mysql数据库设置root可以远程登录的方法

mysql数据库设置root可以远程登录的方法 Posted on 2018-02-21 21:08 sishuisufeng 阅读(161) 评论(0) 编辑 收藏 允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如...

rootliu
23分钟前
0
0
TensorFlow 图的基本操作

图的创建,一般只需要使用默认图就能满足大部分的需求了 # 1 创建图的方法# 在默认图中创建常量c = tf.constant(0.0)# 新建一个图g = tf.Graph()# 设置上下文管理器,标明操作...

阿豪boy
56分钟前
0
0
git 忽略文件失效

git update-index --assume-unchanged */.project

林子大鸟
58分钟前
0
0
实现验证码功能

1、实现验证码,并存储 import com.dtb.pc_enterprise.entity.EnterUserEntity;import com.dtb.pc_enterprise.service.AdminService;import com.dtb.pc_enterprise.util.RedisService;......

木九天
今天
0
0
iptables 实例

以下部分内容为网络查询并整理结果 filter表小案例 iptables规则五条链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 四个表:filter nat mangle raw ###netfilter和iptables说明: 1、 ne...

李超小牛子
今天
0
0
Java面试基础篇——第六篇:常见Map类的区别

常见的map类有: HashMap, ConcurrentHashMap (Jdk1.8) , LinkedHashMap, TreeMap, Hashtable。 其中我们最常用的莫过于HashMap, 和并发情况下使用的ConcurrentHashMap了,它们的主要区别就在...

developlee的潇洒人生
今天
2
0
spring-boot:run启动时,指定spring.profiles.active

Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。 如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test......

夜黑人模糊灬
今天
0
0
大数据分析挖掘技术学习:Python文本分类

引言 文本分类作为自然语言处理任务之一,被广泛应用于解决各种商业领域的问题。文本分类的目的是将 文本/文档 自动地归类为一种或多种预定义的类别。常见的文本分类应用如下: • 理解社交媒...

加米谷大数据
今天
0
0
istio-0.8 指标监控,prometheus,grafana

配置: https://istio.io/docs/tasks/telemetry/metrics-logs/ https://istio.io/docs/tasks/telemetry/tcp-metrics/ envoy拦截请求>上报mixer>对接prometheus>grafana 效果截图: promethe......

xiaomin0322
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部