1.1 k8s的架构


除了核心组件,还有一些推荐的Add-ons:

组件名称    说明
kube-dns    负责为整个集群提供DNS服务
Ingress Controller  为服务提供外网入口
Heapster    提供资源监控
Dashboard   提供GUI
Federation  提供跨可用区的集群
Fluentd-elasticsearch   提供集群日志采集、存储与查询

1.2 修改ip地址,主机和host解析

10.0.0.11 k8s-master
10.0.0.12 k8s-node1
10.0.0.13 k8s-node2

所有界定啊需要做hosts解析

1.3 master 节点安装etcd

yum instanll etcd -y

修改配置文件
vim /etc/etcd/etcd.conf
第六行:ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
第二十一行:ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"

启动服务
systemctl start etcd.service
systemctl enable etcd.service

测试key是否正常
生成key
etcdctl set testdir/testkey0 0
测试key,查看是否能取到值
etcdctl get testdir/testkey0

远程测试key能否取值
etcdctl -C http://10.0.0.11:2379 cluster-health

1.4 master节点安装kubernetes

yum install kubernetes-master.x86_64 -y

修改配置文件
vim /etc/kubernetes/apiserver
8行:  KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
11行:KUBE_API_PORT="--port=8080"
14行: KUBELET_PORT="--kubelet-port=10250"
17行:KUBE_ETCD_SERVERS="--etcd-servers=http://10.0.0.11:2379"

删除第23行的ServiceAccount
23行:KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

修改第二个配置文件
vim /etc/kubernetes/config

22行:KUBE_MASTER="--master=http://10.0.0.11:8080"

重启服务
systemctl enable kube-apiserver.service
systemctl restart kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl restart kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl restart kube-scheduler.service

检查服务是否安装正常

[root@k8s-master ~]# kubectl get componentstatus

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

1.5 node节点安装kubernetes

yum install kubernetes-node.x86_64 -y

编辑配置文件,让任意节点都能找到api服务
vim /etc/kubernetes/config
22行:KUBE_MASTER="--master=http://10.0.0.11:8080"

vim /etc/kubernetes/kubelet
5行:KUBELET_ADDRESS="--address=0.0.0.0"    #修改kubelet监听地址
8行:KUBELET_PORT="--port=10250"            #监听端口
11行:KUBELET_HOSTNAME="--hostname-override=10.0.0.12"    #node节点的唯一标识
14行:KUBELET_API_SERVER="--api-servers=http://10.0.0.11:8080"    #apiserver地址

启动服务,并加入开机自启
systemctl enable docker
systemctl enable kubelet.service
systemctl restart kubelet.service
systemctl enable kube-proxy.service
systemctl restart kube-proxy.service

在master 节点检查,node节点是否启动成功

[root@k8s-master ~]# kubectl get nodes
NAME        STATUS    AGE
10.0.0.12   Ready     6m
10.0.0.13   Ready     3s

1.6 所有节点配置flannel网络

yum install flannel -y

修改配置文件,etcd地址
sed -i 's#http://127.0.0.1:2379#http://10.0.0.11:2379#g' /etc/sysconfig/flanneld

##master节点:
设定key,规划key的网段
etcdctl mk /atomic.io/network/config   '{ "Network": "172.18.0.0/16" }'

安装docker ,启动服务
yum install docker -y
systemctl enable flanneld.service
systemctl restart flanneld.service
systemctl  restart  docker
systemctl  enable  docker
systemctl restart kube-apiserver.service
systemctl restart kube-controller-manager.service
systemctl restart kube-scheduler.service

##node节点:
systemctl enable flanneld.service
systemctl restart flanneld.service
systemctl  restart  docker
systemctl restart kubelet.service
systemctl restart kube-proxy.service
vim /usr/lib/systemd/system/docker.service

#在[Service]区域下增加一行
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT       #使容器能和外界网络ping通

重启服务
systemctl daemon-reload
systemctl restart docker

1.7 配置master为镜像仓库

#所有节点,配置镜像加速,以及镜像仓库地址http
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["10.0.0.11:5000"]
}

##master节点
使用master节点安装镜像仓库

docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry  registry

通过registry镜像生成仓库,没有镜像,默认会去官网下载,先下载registry镜像时间比较短

k8s 安装的更多相关文章

  1. k8s 安装文档

    k8s 安装文档 1.5 http://blog.csdn.net/bobpen/article/details/78958675

  2. k8s 安装 istio 的坑

    本文针对于二进制部署的k8s安装istio1.67版本 没有设置admin.conf的小伙伴请参考 https://www.cnblogs.com/Tempted/p/13469772.html 1. ...

  3. docker k8s安装

    docker安装 删除依赖包 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docke ...

  4. K8S 安装 Wordpress

    基本概念 Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现.共享和使用为Kubernetes构建的应用,它包含几个基本概念 Helm是目前Kubernetes服务编排领域的唯一 ...

  5. k8s 安装步骤

    1 安装Docker 1.1 增加中国区镜像 https://registry.docker-cn.com 2 下载安装k8s的镜像的脚本 https://github.com/AliyunConta ...

  6. 关于k8s安装脚本方面的草稿

    周六作的, 慢慢完善. #! /usr/bin/env bash set -e set -u set -x #让此脚本可以重复执行,所以加了一些判断 #使用系统的PATH环境 export PATH= ...

  7. k8s安装遇到的问题及处理方法

    安装kubernetes遇到 cni config uninitialized KubeletNotReady runtime network not ready: NetworkReady=fals ...

  8. k8s1.4.3安装实践记录(2)-k8s安装

    前面一篇已经安装好了ETCD.docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了 1.K8S 目前centos yum上的kubernetes还是1.2.0, ...

  9. k8s安装部署过程个人总结及参考文章

    以下是本人安装k8s过程 一.单机配置 1. 环境准备 主机名 IP 配置 master1 192.168.1.181 1C 4G 关闭所有节点的seliux以及firewalld sed -i 's ...

  10. k8s安装

    docker pull mirrorgooglecontainers/kube-scheduler:v1.13.3 安装docker 使用阿里的源https://mirrors.aliyun.com/ ...

随机推荐

  1. 快速求1~n的k!,k的逆元

    1.求1~n的k! 2.求inv(k!) 3.inv((k-1)!)=inv(k!)*k%mod 4.inv(k)=inv(k!)*((k-1)!)%mod 如 https://www.cnblogs ...

  2. 七牛云-C#SDK-上传-前期准备

    1.创建一个asp.net core MVC 程序(这里随便) 这是一个空的程序 2.创建UploadController 3.添加引用 Install-Package Newtonsoft.Json ...

  3. 6367. 【NOIP2019模拟2019.9.25】工厂

    题目 题目大意 给你一堆区间,将这些区间分成特定的几个集合,使得每个集合中的所有区间的并不为空. 求最大的每组区间的交的长度之和. 思考历程 一开始就认为这绝对是\(DP\)-- 试着找一些性质,结果 ...

  4. CSS——背景及应用

    CSS 可以添加背景颜色和背景图片,以及进行图片设置. none : 无背景图(默认的) url : 使用绝对或相对地址指定背景图像 background-image 属性允许指定一个图片展示在背景中 ...

  5. Android中的Service详解

    今天我们就来介绍一下Android中的四大组件中的服务Service,说到Service, 它分为本地服务和远程服务:区分这两种服务就是看客户端和服务端是否在同一个进程中,本地服务是在同一进程中的,远 ...

  6. 约数个数求和+线性筛约数——bzoj3994

    这题首先要会线性筛约数个数,并求出前缀和 bool vis[maxn]; int mm,mu[maxn],prime[maxn],num[maxn],sum[maxn],d[maxn],sum1[ma ...

  7. ncurses库的介绍与安装

    Frm: http://blog.csdn.net/Mary_Jane/article/details/50769631 介绍 ncurses(new curses)是一套编程库,它提供了一系列的函数 ...

  8. eclipse新建maven项目和聚合项目

    1.new maven project :  next 2.勾选 create a simple project  :  next 3.Group Id:项目的包路径 如com.jiayou.zjl, ...

  9. Future Parttern 先给你这张提货单

    Future是未来,预期的意思,Thread-permessage模式是指将任务交给其他线程来做,但是如果想知道处理的结果,就要使用Future模式,它的典型应用时执行一个需要花一些时间的方法,会立即 ...

  10. jquery中on绑定click事件在苹果手机中不起作用

    写一个div当做了一个按钮来使用. <div class="button"> <div class="sure"> 确定 </di ...