k8s下集群搭建

一、系统环境centos7系统机器二台:

    192.168.59.1: 用来安装kubernetes master

    192.168.59.2: 用作kubernetes minion (minion1)

1.如果系统开启了防火墙则按如下步骤关闭防火墙(所有机器)

# systemctl stop firewalld

# systemctl disable firewalld

2.关闭selinux

1

2

#setenforce 0

#sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux

二、MASTER安装配置

1. 安装并配置Kubernetes master(yum 方式)

1

# yum -y install etcd kubernetes

配置etcd。确保列出的这些项都配置正确并且没有被注释掉,下面的配置都是如此 

1

2

3

4

5

6

#vim /etc/etcd/etcd.conf

  

ETCD_NAME=default

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"

配置kubernetes

1

2

3

4

5

6

7

8

vim /etc/kubernetes/apiserver

  

KUBE_API_ADDRESS="--address=0.0.0.0"

KUBE_API_PORT="--port=8080"

KUBELET_PORT="--kubelet_port=10250"

KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

KUBE_API_ARGS=""

2. 启动etcd, kube-apiserver, kube-controller-manager and kube-scheduler服务

1

# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do

systemctl restart $SERVICES

systemctl enable $SERVICES

systemctl status $SERVICES

done

3. 设置etcd网络

1

#etcdctl -endpoint="http://192.168.59.1:2379" set /coreos.com/network/config  '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

查看状态:

# kubectl get nodes

# kubectl get cs

三、MINION安装配置(每台minion机器都按如下安装配置)

1. 环境安装和配置

1

# yum -y install flannel kubernetes

配置kubernetes连接的服务端IP

1

2

3

#vim /etc/kubernetes/config

KUBE_MASTER="--master=http://192.168.59.1:8080"

KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.59.1:2379"

配置kubernetes  

1

2

3

4

5

#vim /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_PORT="--port=10250"

# change the hostname to this host’s IP address K

UBELET_HOSTNAME="--hostname_override=192.168.59.2"

KUBELET_API_SERVER="--api_servers=http://192.168.59.1:8080"

UBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"

KUBELET_ARGS=""

2. 准备启动服务(如果本来机器上已经运行过docker的请看过来,没有运行过的请忽略此步骤)

    运行ifconfig,查看机器的网络配置情况(有docker0)

1

2

3

4

5

# ifconfig docker0

Link encap:Ethernet HWaddr 02:42:B2:75:2E:67 inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0 UP

BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0

errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

  warning:在运行过docker的机器上可以看到有docker0,这里在启动服务之前需要删掉docker0配置,在命令行运行:sudo ip link delete docker0

3.配置flannel网络

1

2

3

#vim /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://192.168.59.1:2379"

FLANNEL_ETCD_PREFIX="/coreos.com/network"

4. 启动服务

1

# for SERVICES in flanneld kube-proxy kubelet docker; do

systemctl restart $SERVICES

systemctl enable $SERVICES

systemctl status $SERVICES

done

四、启动一个测试示例

启动一个Nginx副本示例:

# kubectl run nginx --image=nginx --replicas=3

pod正常运行后,创建Service:

# kubectl expose deployment nginx --port=88 --target-port=80 --type=NodePort

# kubectl get svc nginx

在Node节点访问:

curl <CLUSTER-IP>:PORT

猜你喜欢

转载自blog.csdn.net/oushitian/article/details/85607677