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 ...
随机推荐
- ES6 Promise的resolved深入理解
Promise的概念在ES6标准推出来之前已经深入人心,很多框架和第三方库都有类似的实现.但在深入理解ES6的Promise对象的时候,受之前经验的影响,很多概念给人似是而非的感觉,其中有一个特别明显 ...
- hdu 1501 Zipper dfs
题目链接: HDU - 1501 Given three strings, you are to determine whether the third string can be formed by ...
- IntelliJ debug grails 无效的解决办法
从Grails 2.2以后默认run-app命令将启动Grails应用程序在一个单独的Java虚拟机. 这就是所谓的分叉的Tomcat Grails中的执行. 这样的类路径Grails构建系统和应用程 ...
- selenium 截图
http://blog.csdn.net/u010953692/article/details/78320025 # coding:utf-8 # coding:cp936 from selenium ...
- tensorflow dynamic rnn源码分析
python3.6,tensorflow1.11 测试代码: tensorflow在eager模式下进行测试,方便调试,查看中间结果 import tensorflow as tf tf.enable ...
- 转:MVVM的基本入门简介
https://mp.weixin.qq.com/s?__biz=MzA3MjA4NjE3NQ==&mid=404502568&idx=1&sn=fe512f9820b99d3 ...
- Weblogic OutOfMemory exception的误解 -- thread limitation
不是全部的OutofMemory exception都是内存问题... 前几天有个客户的site报了下面错误: [ERROR][thread ] Could not start thread Time ...
- POJ 2388:Who's in the Middle
Who's in the Middle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 31015 Accepted: 1 ...
- ping百度不通的解决方案
1.ping www.baidu.com unknow baidu.com 第一步,确定是否能ping通网关 第二步,确定是否能直接ping通外网 如ping 8.8.8.8 第三步,如果上面两个都 ...
- Ubuntu14.04下MySQL的安装与卸载
转载自:https://www.2cto.com/os/201408/329502.html 安装MysQL 执行以下命令:sudo apt-get install mysql-server 2. 继 ...