kubernetes基础入门之-安装部署配置示例

这里写图片描述

简介:

  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下:

    • 1) 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。

    • 2) 以集群的方式运行、管理跨机器的容器。

    • 3) 解决Docker跨机器容器之间的通讯问题。

    • 4) Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。

  • 当前Kubernetes支持GCE、vShpere、CoreOS、OpenShift、Azure等平台,除此之外,也可以直接运行在物理机上。

本文概述:

kubernetes 版本 1.4.6

系统环境( CentOS 7.2 )


环境准备

a) # systemctl disable firewalld 
b) # sed -i s'/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
c) # yum -y update && reboot
d) # yum -y install ntpdate && ntpdate cn.pool.ntp.org

分别在各节点写入DNS:
192.168.11.10 master hub.jevic.io
192.168.11.20 node1
192.168.11.30 node2

下载安装:

etct: https://github.com/coreos/etcd/releases
flannel: https://github.com/coreos/flannel/releases
kubernetes: https://github.com/kubernetes/kubernetes/releases/
docker: https://docs.docker.com/engine/installation/linux/centos/


Master 配置: 192.168.11.10

[root@ master]# ls /opt/sourceetcd
flannel  etcd  kubernetes
[root@ master] ln -s  /opt/source/etcd/etcd /usr/local/bin
[root@ master] ln -s  /opt/source/etcd/etcdctl /usr/local/bin
[root@ master] ln -s  /opt/source/flannel/flanneld /usr/local/bin
[root@ master] ln -s  /opt/source/kubernetes/server/bin/kube-apiserver /usr/local/bin
[root@ master] ln -s  /opt/source/kubernetes/server/bin/kube-controller-manager /usr/local/bin
[root@ master] ln -s  /opt/source/kubernetes/server/bin/kubectl /usr/local/bin
[root@ master] ln -s  /opt/source/kubernetes/server/bin/kube-scheduler /usr/local/bin
[root@ master] mkdir /var/log/{flanneld,kubernetes}

[root@ master] nohup etcd --name etcd10 --data-dir /var/lib/etcd \
--listen-client-urls http://0.0.0.0:2378,http://0.0.0.0:4001 \
--advertise-client-urls http://0.0.0.0:2378,http://0.0.0.0:4001 >> /var/log/etcd.log 2>&1 &

[root@ master] nohup flanneld --listen=0.0.0.0:8888 >> /var/log/flanneld/flanneld.log 2>&1 &

[root@ master] etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'

#### 然后在node1,node2 分别执行(a-g)部分操作


#### 最后开启kubernetes服务:
[root@ master] nohup kube-apiserver --logtostderr=true \
--v=0 --etcd_servers=http://0.0.0.0:2378 \
--insecure-bind-address=0.0.0.0 \
--insecure-port=8080 \
--service-cluster-ip-range=10.254.0.0/16 >> /var/log/kubernetes/kube-apiserver.log 2>&1 &
[root@ master] nohup kube-controller-manager --logtostderr=true --v=0 --master=http://0.0.0.0:8080 >> /var/log/kubernetes/controller.log 2>&1 &
[root@ master] nohup kube-scheduler --logtostderr=true --v=0 --master=http://0.0.0.0:8080 >> /var/log/kubernetes/scheduler.log 2>&1 &


node1: 192.168.11.20

[root@ node1]# ls /opt/source
flannel   kubernetes
[root@ node1]# ln -s /opt/source/etcd/etcd  /usr/local/bin
[root@ node1]# ln -s /opt/source/etcd/etcdctl /usr/local/bin
[root@ node1]# ln -s /opt/source/flannel/flanneld /usr/local/bin
[root@ node1]# ln -s /opt/source/kubernetes/server/bin/kubelet /usr/local/bin
[root@ node1]# ln -s /opt/source/kubernetes/server/bin/kube-proxy /usr/local/bin

a.[root@ node1]# mkdir /var/log/{flanneld,kubernetes}

b.[root@ node1]# nohup flanneld -etcd-endpoints=http://192.168.11.10:4001 -remote=192.168.11.10:8888 >> /var/log/flanneld/flanneld.log 2>&1 &

c.[root@ node1]# source /run/flannel/subnet.env

d.[root@ node1]# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=10.1.0.0/16
FLANNEL_SUBNET=10.1.62.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false

e.[root@ node1]# grep "bip" /lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd --bip=10.1.62.1/24 --mtu=1472

f.[root@ node1]# systemctl daemon-reload && systemctl start docker

g.[root@ node1]# ip a|egrep "docker|flan"
3: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
    inet 10.1.62.0/16 scope global flannel0
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    inet 10.1.62.1/24 scope global docker0

### 最后启动kubernetes节点服务
[root@ node1]# nohup kubelet --address=0.0.0.0 \
--port=10250 --logtostderr=true --v=0 \
--api-servers=http://192.168.11.10:8080 >> /var/log/kubernetes/kubelet.log 2>&1 &
[root@ node1]# nohup kube-proxy --logtostderr=true --v=0 --master=http://192.168.11.10:8080 >> /var/log/kubernetes/proxy.log 2>&1 &

node2: 192.168.11.30

[root@ node2]# ls /opt/source
flannel   kubernetes
[root@ node2]# ln -s /opt/source/etcd/etcd  /usr/local/bin
[root@ node2]# ln -s /opt/source/etcd/etcdctl /usr/local/bin
[root@ node2]# ln -s /opt/source/flannel/flanneld /usr/local/bin
[root@ node2]# ln -s /opt/source/kubernetes/server/bin/kubelet /usr/local/bin
[root@ node2]# ln -s /opt/source/kubernetes/server/bin/kube-proxy /usr/local/bin

a.[root@ node2]# mkdir /var/log/{flanneld,kubernetes}

b.[root@ node2]# nohup flanneld -etcd-endpoints=http://192.168.11.10:4001 -remote=192.168.11.10:8888 >> /var/log/flanneld/flanneld.log 2>&1 &

c.[root@ node2]# source /run/flannel/subnet.env

d.[root@ node2]# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=10.1.0.0/16
FLANNEL_SUBNET=10.1.77.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false

e.[root@ node2]# grep "bip" /lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd --bip=10.1.77.1/24 --mtu=1472

f.[root@ node2]# systemctl daemon-reload && systemctl start docker

g.[root@ node2]# ip a|egrep "docker|flan"
3: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
    inet 10.1.77.0/16 scope global flannel0
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    inet 10.1.77.1/24 scope global docker0

### 最后启动kubernetes节点服务:
[root@ node2]# nohup kubelet --address=0.0.0.0 \
--port=10250 --logtostderr=true --v=0 \
--api-servers=http://192.168.11.10:8080 >> /var/log/kubernetes/kubelet.log 2>&1 &
[root@ node2]# nohup kube-proxy --logtostderr=true --v=0 --master=http://192.168.11.10:8080 >> /var/log/kubernetes/proxy.log 2>&1 &

最后查看节点状态

[root@ master] kubectl get nodes
NAME STATUS AGE
node1 Ready 1h
node2 Ready 39m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值