k8s集群部署
环境:
两台虚拟机,
10.10.20.203 部署docker、etcd、flannel、kube-apiserver、kube-controller-manager、kube-scheduler
10.10.20.206 部署docker、flannel、kubelet、kube-proxy
注意:主机名不能有下划线,否则kubelet不能注册到master,执行kubectl get node,不会有任何返回。如果主机名不能修改,并且有下划线,就再kubelet的启动参数中增加--hostname-override,指定一个不带下划线的名字。
【修改hosts文件】
修改master机上的/etc/hosts文件,增加
10.10.20.206 k8s-slave1-
【关闭防火墙】
关闭所有服务器的防火墙,执行如下命令
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
【etcd】
1、下载curl -L https://github.com/coreos/etcd/releases/download/v2.3.7/etcd-v2.3.7-linux-amd64.tar.gz -o etcd-v2.3.7-linux-amd64.tar.gz
2、将etcd和etcdctl拷贝到/usr/bin下
cp etcd /usr/bin/etcd
cp etcdctl /usr/bin/etcdctl
3、启动命令
etcd --name etcd \
--data-dir /var/lib/etcd \
--listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
--advertise-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
>> /var/log/etcd.log >& &
4、检查状态
etcdctl -C http://localhost:4001 cluster-health
输出如下信息,代表正常
member ce2a822cea30bfca is healthy: got healthy result from http://0.0.0.0:2379
cluster is healthy
【k8s部署准备】
1、下载编译好的k8s,文件比较大,1.38G,下载地址如下
https://github.com/kubernetes/kubernetes/releases/download/v1.3.3/kubernetes.tar.gz
2、解压/kubernetes/server/kubernetes-server-linux-amd64.tar.gz,将/kubernetes/server/kubernetes/server/bin目录下的可执行文件拷贝到/usr/bin,使用如下命令
find ./ -perm | xargs -i cp {} /usr/bin
【kube-apiserver】
kube-apiserver \
--logtostderr=true --v= \
--etcd-servers=http://10.10.20.203:4001 \
--insecure-bind-address=0.0.0.0 --insecure-port= \
--service-cluster-ip-range=10.254.0.0/ \
>> /var/log/kube-apiserver.log >& &
【kube-controller-manager】
kube-controller-manager \
--logtostderr=true --v= \
--master=http://10.10.20.203:8080 \
>> /var/log/kube-controller-manager.log >& &
【kube-scheduler】
kube-scheduler \
--logtostderr=true --v= \
--master=http://10.10.20.203:8080 \
>> /var/log/kube-scheduler.log >& &
【kube-proxy】
kube-proxy \
--logtostderr=true --v= \
--master=http://10.10.20.203:8080 \
>> /var/log/kube-proxy.log >& &
【kubelet】
kubelet \
--logtostderr=true --v= \
--address=0.0.0.0 \
--api-servers=http://10.10.20.203:8080 \
--pod-infra-container-image=index.tenxcloud.com/google_containers/pause-amd64:3.0 \
>> /var/log/kubelet.log >& &
【flannel】
1、下载flannel https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz
2、解压
3、将flanneld拷贝到/usr/bin
cp flanneld /usr/bin
4、配置网络(在master节点上执行一次即可,其他节点忽略此步骤)
etcdctl -C http://10.10.20.203:4001 \
set /coreos.com/network/config '{"Network":"10.0.0.0/16"}'
5、启动(在所有节点上都执行),执行了该指令后,会生成/run/flannel/subnet.env文件,启动docker的时候需要使用
flanneld -etcd-endpoints=http://10.10.20.203:4001 \
>> /var/log/flanneld.log >& &
6、删除之前通过yum安装docker时,创建的docker0网桥
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
【docker】
docker的安装就不介绍了,在安装k8s之前先通过yum安装的,因为要指定docker使用的网桥等信息,所以systemctl stop docker后,通过以下命令行的形式来启动
source /run/flannel/subnet.env
dockerd \
-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 \
--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} \
--insecure-registry 10.10.20.202 \
>> /var/log/docker.log >& &
此时再查看网络情况,ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.0.77.1 netmask 255.255.255.0 broadcast 0.0.0.0
ether 02:42:4f:38:38:39 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1472
inet 10.0.77.0 netmask 255.255.0.0 destination 10.0.77.0
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
【杀进程】
因为都是通过命令行的方式启动,所以停止的时候就直接杀进程了
#杀docker
ps -ef | grep docker | grep -v grep | awk '{print $2}' | xargs -i kill - {}
#杀etcd
ps -ef | grep etcd | grep -v grep | awk '{print $2}' | xargs -i kill - {}
#杀k8s
ps -ef | grep kube | grep -v grep | awk '{print $2}' | xargs -i kill - {}
#杀flannel
ps -ef | grep flannel | grep -v grep | awk '{print $2}' | xargs -i kill - {}
k8s集群部署的更多相关文章
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- (视频)asp.net core系列之k8s集群部署视频
0.前言 应许多网友的要求,特此录制一下k8s集群部署的视频.在录制完成后发现视频的声音存在一点瑕疵,不过不影响大家的观感. 一.视频说明 1.视频地址: 如果有不懂,或者有疑问的欢迎留言.视频分为两 ...
- 在k8s集群部署SonarQube
目录 1.2.存储环境 1.3.sonarqube版本 2.部署sonarqube 2.1.部署PostgreSQL 2.2.部署SonarQube 2.3.访问检查 SonarQube 是一款用于代 ...
- 基于k8s集群部署prometheus监控ingress nginx
目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...
- 基于k8s集群部署prometheus监控etcd
目录 基于k8s集群部署prometheus监控etcd 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署prometheus监控 ...
- 菜鸟系列k8s——k8s集群部署(2)
k8s集群部署 1. 角色分配 角色 IP 安装组件 k8s-master 10.0.0.170 kube-apiserver,kube-controller-manager,kube-schedul ...
随机推荐
- 洛谷 U19159 采摘毒瘤
题目背景 Salamander见到路边有如此多的毒瘤,于是见猎心喜,从家里拿来了一个大袋子,准备将一些毒瘤带回家. 题目描述 路边共有nn 种不同的毒瘤,第i 种毒瘤有k_i 个,每个需要占据d_i ...
- Codeforces 920 E Connected Components?
Discription You are given an undirected graph consisting of n vertices and edges. Instead of giving ...
- iOS 设置系统音量和监听系统音量变化
很简单的调用 首先在工程引入MediaPlayer.framework #import <MediaPlayer/MediaPlayer.h> 1. 获取系统音量 // 获取系统音量 MP ...
- pr_debug、dev_dbg等动态调试二
内核版本:Linux-3.14 作者:彭东林 邮箱:pengdonglin137@163.com 下面我们简要分析 1: echo -n "file demo.c +p" > ...
- linux命令详解:jobs命令
转:http://www.cnblogs.com/lwgdream/p/3413571.html 前言 我们可以将一个程序放到后台执行,这样它就不占用当前终端,我们可以做其他事情.而jobs命令用来查 ...
- Linux文件压缩与解压命令
1 .zip 格式压缩与解压 压缩命令 zip 压缩文件名 源文件 zip -r 压缩目录名 源目录 解压命令 unzip 文件名 td@td-Lenovo-IdeaPad-Y41 ...
- 设计模式之中介者模式(php实现)
github地址:https://github.com/ZQCard/design_pattern /** * 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性. ...
- Spring: aop自动标注时出现 “0 formal unbound in pointcut"
异常代码信息: org.springframework.beans.factory.BeanCreationException: Error creating bean with name forma ...
- .net的远程调用
.Net远程调用(转自:http://www.cnblogs.com/omilan/articles/3191378.html) 看到了这.net远程调用的讲解,觉得不错,拿来分享!! .Net对于远 ...
- Java高级特性—消息队列
1)什么是jms JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API. 它便于消息系统中的Java应用程序进行消息 ...