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 ...
随机推荐
- NMAP输出结果中CPE的含义
NMAP输出结果中CPE的含义 CPE全称是Common Platform Enumeration,意思是通用平台枚举项.它是NMAP对识别出来的软件.操作系统和硬件的一种命名方式.它的格式如下: ...
- luogu P1041 传染病控制
题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带 ...
- [BZOJ4398]福慧双修/[BZOJ2407]探险
题目大意: 给定一个$n(n\leq40000)$个点$m(m\leq100000)$条边的有向图,求从$1$出发回到$1$的不经过重复结点的最短路. 思路: 首先Dijkstra求出从1出发到每个结 ...
- MySQL索引,如何正确创建MySQL索引?
索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的 ...
- Systems Performance: Enterprise and the Cloud 读书笔记系列
http://blog.csdn.net/xiaonanAndroid/article/category/2557735
- 自动生成logo的网址
1.https://www.logaster.com/logo/
- python getopt学习记录
有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Python里,命令行的参数和C语言很类似(因为标准Python是用C语言实现的).在C语言里,m ...
- 【MySQL】谈谈PhxSQL的设计和实现哲学
参考资料: http://mp.weixin.qq.com/s?__biz=MzI4NDMyNTU2Mw==&mid=2247483790&idx=1&sn=c925202df ...
- [Other] An Overview of Arrays and Memory
One integer takes 32bit in memory, 1 byte = 8bits, therefore one integer takes 4 bytes. Now let's as ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...