cenots7单机安装Kubernetes
关于什么是Kubernetes请看另一篇内容:http://www.cnblogs.com/boshen-hzb/p/6482734.html
一、环境搭建
master安装的组件有:
docker
etcd 可以理解为是k8s的数据库,存储所有节点、pods、网络信息
kube-proxy 提供service服务的基础组件
kubelet 管理k8s节点的组件,因为这台master同时也是nodes,所以也要安装
kube-apiserver k8s提供API的接口,是整个k8s的核心
kube-controller-manager 管理分配资源的组件
kube-scheduler 调度资源的组件
flanneld 整个k8s的网络组件
nodes安装的组件有:
docker
kube-proxy
kubelet
flanneld
由于是单机安装,所以只需要安装master节点就可以。
二、安装步骤
1、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2、更新yum源
cat <<EOF> /etc/yum.repos.d/virt7-docker-common-release.repo
[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0
EOF
3、执行yum -y update
4、执行安装命令
yum install -y etcd kubernetes flannel
如果系统已经存在安装好的docker引擎,上面的命令会报错,解决方法就是:先删除掉docker,因为上面的命令当中,会自动安装docker
5、配置etcd服务器
/etc/etcd/etcd.conf
# [member]
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://10.111.131.51:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://10.111.131.51:2379"
启动服务
systemctl start etcd
systemctl enable etcd
检查etcd cluster状态
[root@localhost ~]# etcdctl cluster-health
member eb1f405cbdb8358 is healthy: got healthy result from http://localhost:2379
cluster is healthy
[root@localhost ~]#
检查etcd集群成员列表,这里只有一台
[root@localhost ~]# etcdctl member list
eb1f405cbdb8358: name=default peerURLs=http://10.111.131.51:2380 clientURLs=http://localhost:2379 isLeader=true
[root@localhost ~]
配置防火墙
firewall-cmd --zone=public --add-port=2379/tcp --permanent
firewall-cmd --zone=public --add-port=2380/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
6、配置master服务器
1) 配置kube-apiserver配置文件
/etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true" # journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0" # Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false" # How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://10.111.131.51:8080"
/etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1" # The port on the local server to listen on.
# KUBE_API_PORT="--port=8080" # Port minions listen on
# KUBELET_PORT="--kubelet-port=10250" # Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://10.111.131.51:2379" # Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" # Add your own!
KUBE_API_ARGS=""
2) 配置kube-controller-manager配置文件
# The following values are used to configure the kubernetes controller-manager # defaults from config and apiserver should be adequate # Add your own!
KUBE_CONTROLLER_MANAGER_ARGS=""
3) 配置kube-scheduler配置文件
/etc/kubernetes/scheduler
###
# kubernetes scheduler config # default config should be adequate # Add your own!
KUBE_SCHEDULER_ARGS="--address=0.0.0.0"
4) 启动服务
service kube-apiserver restart
service kube-controller-manager restart
service kube-scheduler restart
以下是将本机当作node节点的配置
5)配置etcd
[root@localhost ~]# etcdctl set /k8s/network/config '{"Network": "10.111.131.0/24"}'
{"Network": "10.111.131.0/24"}
[root@localhost ~]#
6)配置node的network,本实例采用flannel方式来配置,如需其他方式,请参考Kubernetes官网。
先用ifconfig查找到本机网络10.111.131.51对应的网卡:
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.111.131.51 netmask 255.255.255.0 broadcast 10.111.131.255
inet6 fe80::20c:29ff:fedf:f83b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:df:f8:3b txqueuelen 1000 (Ethernet)
RX packets 161627 bytes 208913594 (199.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 113194 bytes 72446146 (69.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
打开/etc/sysconfig/flanneld,进行以下配置
# Flanneld configuration options # etcd url location. Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://10.111.131.51:2379" # etcd config key. This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/k8s/network" # Any additional options that you want to pass
FLANNEL_OPTIONS="eno16777736"
7)配置node的kube-proxy
/etc/kubernetes/config (注意:本机是master也是node,因为前面已经配过,所以这里不用再配)
KUBE_LOGTOSTDERR="--logtostderr=true" # journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0" # Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false" # How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://10.111.131.51:8080"
/etc/kubernetes/proxy
进行以下配置
config should be adequate # Add your own!
KUBE_PROXY_ARGS="--bind=address=0.0.0.0"
8) 配置node的kubelet
在/etc/hosts下加入:10.111.131.51 k8s-master
/etc/kubernetes/kubelet
###
# kubernetes kubelet (minion) config # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=127.0.0.1" # The port for the info server to serve on
# KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=k8s-master" # location of the api-server
KUBELET_API_SERVER="--api-servers=http://10.111.131.51:8080" # pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" # Add your own!
KUBELET_ARGS=""
9) 启动node服务
service flanneld start
service kube-proxy start
service kubelet start
10)至此,整个Kubernetes单机版环境搭建完,下面创建一个deployment进行测试
mysql-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mysql-test
spec: replicas: 1
template:
metadata:
labels:
app: redis
spec:
containers:
- name: mysql-test
image: 72.16.101.192/common/mysql:5.6
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 3306
在机器上执行以下命令:
[root@localhost ~]# kubectl create -f mysql-deployment.yaml
deployment "mysql-test" created
[root@localhost ~]#
查看刚才创建的deployment信息。
[root@localhost ~]# kubectl get deploy
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
mysql-test 1 0 0 0 1m
[root@localhost ~]#
出现上面的信息,表示Kubernetes安装成功。
cenots7单机安装Kubernetes的更多相关文章
- linux(centos8):kubeadm单机安装kubernetes(kubernetes 1.18.3)
一,kubernetes安装的准备工作: 1,准备工作的各步骤请参见: https://www.cnblogs.com/architectforest/p/13141743.html 2, ma ...
- kubernetes入门(10)kubernetes单机安装后 - helloworld
前言 查看端口是否被监听了 ::netstat -tlp |grep 31002 我是用的yum install etcd kubernetes docker vim, 这样装的是1.5.2,不是最新 ...
- Centos7 使用 kubeadm 安装Kubernetes 1.13.3
目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...
- Minikube之Win10单机部署Kubernetes(k8s)自动化容器操作的开源平台
Minikube之Win10单机部署 Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作.如果你曾经用过Docker部署容器,那么可以 ...
- 使用 Minikube 安装 Kubernetes
概述: 单机低配置主机也可以玩转kubernetes集群.该文章是将介绍使用Minikube安装Kubernetes集群(一般用于本地/开发环境). 配置环境: 硬件:CPU 至少2个核心,至少2.5 ...
- kind:Kubernetes in Docker,单机测试 Kubernetes 群集的最佳方案
请访问原文发布链接:https://sysin.org/article/kind/,查看最新版. 作者:gc(at)sysin.org,主页:www.sysin.org 2021.04.28 更新,k ...
- (原) 1.1 Zookeeper单机安装
本文为原创文章,转载请注明出处,谢谢 zookeeper 单机安装配置 1.安装前准备 linux系统(此文环境为Centos6.5) Zookeeper安装包,官网https://zookeeper ...
- Linux下Kafka单机安装配置方法(图文)
Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...
- Ubuntu 下 Neo4j单机安装和集群环境安装
1. Neo4j简介 Neo4j是一个用Java实现的.高性能的.NoSQL图形数据库.Neo4j 使用图(graph)相关的概念来描述数据模型,通过图中的节点和节点的关系来建模.Neo4j完全兼容A ...
随机推荐
- 简单的SOCKET例子
定义实例socket.socket(),如果括号里不写参数,默认为IPV4+TCP 我们猜测客户端的完整代码如下: 同样我们猜测服务端的代码如下: 实际上运行客户端代码: 说明在py3里,网络编程发送 ...
- mysql 优化(3)
using filesort 不能利用索引来进行分组或排序,利用filesort算法在内存或者磁盘进行排序using temporary 先在内存中进行分组,归并等操作,不够利用磁盘 SELECT i ...
- 在centOS5.9安装asterisk
最近一直在研究asterisk这个服务器,Asterisk 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案.Asterisk是一种功能非常齐全的应用程序,提 ...
- MySQL 概念
MySQL 数据库:数据库是一个存储数据的仓库, 用在哪些领域:金融机构.游戏网站.购物网站.论坛网站 提供数据服务的软件 1.软件分类:MySQL.SQL_Server.Oracle.Mariadb ...
- 高效网页去重算法-SimHash
记得以前有人问过我,网页去重算法有哪些,我不假思索的说出了余弦向量相似度匹配,但如果是数十亿级别的网页去重呢?这下糟糕了,因为每两个网页都需要计算一次向量内积,查重效率太低了!我当时就想:论查找效率肯 ...
- 【BZOJ】2160: 拉拉队排练(Manacher)
题目 2160: 拉拉队排练 Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长 ...
- 使用poi读写Excel------demo
package com.js.ai.modules.pointwall.interfac; import java.io.FileInputStream; import java.io.FileOut ...
- Linux 之 inotify+rsync 备份文件系统
一.需求 1.线上有不同的机房,并且每个机房所对公网开放端口不一样. 2.A机房中的a机器是台文件服务器,需要备份到B机房中的b机器,以及C机房中的c机器. 3.并且保持实时同步.只要a上面的文件有改 ...
- OD 实验(一) - 修改程序标题
需要修改的程序 把 I love fishc.com 修改为 hello world sch01ar 用 OD 打开程序 在程序入口处开始一直按 F8 运行程序,看看在哪里弹出对话框 运行到该地址的时 ...
- RocketMQ初探(二)之RocketMQ3.26版本搭建(含简单Demo测试案例)
作为一名程序猿,要敢于直面各种现实,脾气要好,心态要棒,纵使Bug虐我千百遍,我待它如初恋,方法也有千万种,一条路不行,换条路走走,方向对了,只要前行,总会上了罗马的道. Apache4.x最新版本既 ...