kubernetes单节点环境搭建:

1.在VMWare Workstation中建立一个centos 7虚拟机。虚拟机的配置尽量调大一些

2.操作系统安装完成后,关闭centos 自带的防火墙服务

systemctl disable firewalld

systemctl stop firewalld

3.安装etcd 和kubernetes软件(会自动安装docker软件)

yum install -y etcd kubernetes

4.安装好软件后,修改两个配置文件(其他配置文件使用默认的就好)

docker配置文件为/etc/sysconfig/docker,其中OPTIONS的内容设置为

OPTINOS='--selinux-enabled=false --insecure-registry gcr.io'

kubernetes apiserver配置文件为/etc/kubernetes/apiserver,把--admission_control参数中的ServiceAccount删除。

5.按顺序启动所有服务

systemctl start etcd

systemctl start docker

systemctl start kube-apiserver

systemctl start kube-controller-manager

systemctl start kube-scheduler

systemctl start kubelet

systemctl start kube-proxy

至此一个单机版的kubernetes集群环境就安装成功了。

kubernetes多节点环境搭建:

多节点环境分为master节点(master节点上运行etcd 、api-server、controller-manager、scheduler、kubelet、proxy)和node节点(node节点上运行kubelet、proxy

1.在VMWare Workstation中建立3个centos 7虚拟机。虚拟机的配置尽量调大一些

2.操作系统安装完成后,关闭centos 自带的防火墙服务(三个节点上都要执行)

systemctl disable firewalld

systemctl stop firewalld

3.安装etcd 和kubernetes软件(会自动安装docker软件,三个节点上都要执行)

yum install -y etcd kubernetes

4.软件安装完成后分别在master节点和node节点上做以下配置

配置master节点:
配置etcd服务:
/etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.10:2379" ---etcd监听的地址和端口号   <master节点的ip>:<2379 >端口默认就是2379
配置kube-apiserver服务:
/etc/kubernetes/apiserver
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.1.10:2379" -----etcd的地址     <master节点的ip>:<2379 >端口默认就是2379

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"   这里设置为0.0.0.0
controller-manager服务和kube-scheduler服务不需要配置
配置conifg服务:
KUBE_MASTER="--master=http://192.168.1.10:8080" ---master地址  <master节点的ip>:<8080 >端口默认就是8080
配置docker服务:
/etc/sysconfig/docker文件改为:
#OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry gcr.io'
/etc/kubernetes/apiserver文件中吧--admission_control参数中的ServiceAcount删除
#KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

配置完成后,在master节点上执行

systemctl daemon-reload

systemctl enable etcd
systemctl start etcd
systemctl enable docker
systemctl start docker
systemctl enable kube-apiserver
systemctl start kube-apiserver
systemctl enable kube-controller-manager
systemctl start kube-controller-manager
systemctl enable kube-scheduler
systemctl start kube-scheduler

systemctl enable kubelet
systemctl start kubelet

systemctl enable kube-proxy
systemctl start kube-proxy

etcdctl cluster-health ---验证etcd是否正确启动

配置node节点:
配置kubelet:
/etc/kubernetes/kubelet
KUBELET_HOSTNAME="--hostname-override=192.168.1.10" -----------kubelet的hostname
KUBELET_API_SERVER="--api-servers=http://192.168.1.10:8080" ----apiserver地址 <master节点的ip>:<8080 >端口默认就是8080
kube-proxy服务不需要配置
配置config:
/etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.1.10:8080"   <master节点的ip>:<8080 >端口默认就是8080
/etc/kubernetes/
systemctl enable docker
systemctl start docker
systemctl enable kubelet
systemctl start kubelet
systemctl enable kube-proxy
systemctl start kube-proxy

至此node节点配置完成。

在master节点上执行kubernetes get nodes查看是否将node节点管理起来,如果管理不起来,

在master节点上执行

systemctl enable etcd
systemctl restart etcd
systemctl enable docker
systemctl restart docker
systemctl enable kube-apiserver
systemctl restart kube-apiserver
systemctl enable kube-controller-manager
systemctl restart kube-controller-manager
systemctl enable kube-scheduler
systemctl restart kube-scheduler

在node节点上执行

systemctl enable docker
systemctl restart docker
systemctl enable kubelet
systemctl restart kubelet
systemctl enable kube-proxy
systemctl restart kube-proxy

然后在执行kubernetes get nodes验证结果。

后续配置根据需要:

服务名 cmd --help -----查看每个服务的配置参数,例如:
kubelet cmd --help
kube-controller-manager cmd --help

ks集群网络配置ovs
1.设置node1和node2节点上的docker0网桥的网段
[root@localhost docker]# cat /etc/docker/daemon.json
{"registry-mirrors": ["http://55488037.m.daocloud.io"], "bip": "172.17.42.1/24"}
2.禁止selinux设置:/etc/selinux/config
SELINUX=disabled
3.yum install policycoreutils-python
semanage fcontext -a -t openvswitch_rw_t "/etc/openvswitch(/.*)?"
restorecon -Rv /etc/openvswitch
service openvswitch status
yum install bridge-utils

ovs-vsctl set interface gre2 type=gre option:remote_ip=192.168.1.106
brctl addif docker0 br0
ip link set dev br0 up
ip link set dev docker0 up
ip route add 172.17.0.0/16 dev docker0
iptables -t nat -F
iptables -F

kubectl expose rc webapp -----卫webapp的rc创建service
docker pull googlecontainer/elasticsearch:1.8

FAQ

1.重启服务命令

systemctl restart etcd
systemctl restart docker
systemctl restart kube-apiserver
systemctl restart kube-controller-manager
systemctl restart kube-scheduler

kubernetes 单节点和多节点环境搭建的更多相关文章

  1. kubernetes实战之consul简单测试环境搭建及填坑

    这一节内容有点长,我们将介绍如何基于docker搭建一client一server的consul测试环境,以及如何搭建多server consul测试集群.在基于docker搭建多server的cons ...

  2. ETH 全节点的远程Debug环境搭建

    ETH全节点还是很浪费资源的,尤其是在同步下来所有区块链,如果你打算在本地进行全节点的Debug吗,有点不现实.这个文档 编译,在要运行的机器上面安装devel,一般的方法是,编译好之后,放到服务器上 ...

  3. ZooKeeper 介绍及集群环境搭建

    本篇由鄙人学习ZooKeeper亲自整理的一些资料 包括:ZooKeeper的介绍,我们要学习ZooKeeper的话,首先就要知道他是干嘛的对吧. 其次教大家如何去安装这个精巧的智慧品! 相信你能研究 ...

  4. ldd3-2 构造和运行模块:环境搭建2

    之前搭建了Ubuntu10.04驱动开发环境,但是那儿的内核版本是2.6.32.27,总感觉无从下手的感觉,因为书上的内核版本是2.6.10,作为初学者不知道差异在哪里,或许不应该纠结这个问题吧. 昨 ...

  5. SpringBoot2 整合Nacos组件,环境搭建和入门案例详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Nacos基础简介 1.概念简介 Nacos 是构建以"服务"为中心的现代应用架构,如微服务范式.云原生范式等服务基础 ...

  6. ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...

  7. Hadoop 2.2.0单节点的伪分布集成环境搭建

    Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federatio ...

  8. 《k8s-1.13版本源码分析》-测试环境搭建(k8s-1.13版本单节点环境搭建)

    本文原始地址(gitbook格式):https://farmer-hutao.github.io/k8s-source-code-analysis/prepare/debug-environment. ...

  9. 部署k8s集群之环境搭建和etcd单节点安装

    环境搭建以及etcd 单节点安装过程 安装之前的环境搭建 在进行k8s安装之前先把虚拟机准备好,这里准备的是三台虚拟机 主机名 ip地址 角色 master 172.16.163.131 master ...

随机推荐

  1. STL map简单使用

    #include <map> #include <iostream> //pair使用头文件iostream using namespace std; int main() { ...

  2. WebRoot 与 webContent的区别

    Web项目发布到Tomcat中. 在Eclipse中生成项目是WebContent目录 而在MyEclipse中生成的项目目录名字好像叫做WebRoot,那么如果把MyEclipse的项目导入到Ecl ...

  3. struts2 type="redirectAction"重定向 与动态调用方法

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...

  4. 【Java SE】如何用Java实现反转排序

    摘要:反转排序是将原先已经排序好了的重新排序,是原来的数组元素的顺序反转过来.假设原来的数组顺序是{6,5,4,3,2,1},反转之后的顺序就是{1,2,3,4,5,6}.这个排序的算法不是很难,代码 ...

  5. 将centos_yum源更换为阿里云(官方文档)

    http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0.d6ykiD 1.备份 mv /etc/yum.repos.d/CentOS ...

  6. redis数据类型-集合类型

    集合类型 在集合中的每个元素都是不同的,且没有顺序. 一个集合类型(set)键可以存储至多2 32-1个(相信这个数字对大家来说已经很熟悉了)字符串. 集合类型的常用操作是向集合中加入或删除元素.判断 ...

  7. NOI2001 食物链

    食物链 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种 ...

  8. React-Native 系列视频失效补链及一些碎碎念

    最近很多朋友联系我要视频链接,说失效了,这边补一下链接,时间问题就不一篇一篇修改了: 链接:https://pan.baidu.com/s/1mj5Cak4 密码:wiq2 注:视频还是建议参考,因为 ...

  9. bzoj1193: [HNOI2006]马步距离

    1193: [HNOI2006]马步距离 Time Limit: 10 Sec  Memory Limit: 162 MB Description 在国际象棋和中国象棋中,马的移动规则相同,都是走&q ...

  10. 以C语言为例的程序性能优化 --《深入理解计算机系统》第五章读书笔记

    其实大多数的编译器本身就能提供一些简单的优化,比如gcc就能通过使用 -O2 或者 -O3 的选项来优化程序.但编译器的优化始终也是有限,因为它必须小心翼翼保证优化过程不对程序的功能有改动.故而程序员 ...