kubernetes及Dashboard实战配置

kubernetes及Dashboard配置

本文在两台部署Centos7上部署kubernetes框架以及Dashboard的配置。

  • Master的IP192.169.31.159
  • Node的IP192.168.31.196

安装必备程序

1.Master上的操作
Master需要安装:docker、 kubernetes-master、etcd、flannel

yum install -y docker
yum install -y kubernetes-master etcd flannel

2.Node上的操作
Node需要安装:docker、kubernetes-node、flannel

yum install -y docker
yum install -y kubernetes-node flannel

部署docker仓库

由于在安装Dashboard过程中没有办法下载两个镜像:kubernetes-dashboard和registry.access.redhat.com/rhel7/pod-infrastructure密码:lbyp。所以,事先下载了这两个资源,然后导入镜像,并上传到仓库,以供部署时pull。

  • 部署仓库
docker pull registry
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry  #指定端口和挂载目录
  • 上传镜像
docker load < dashboard.tar
docker load < podinfrastructure.tar
docker tag gcr.io/google_containers/kubernetes-dashboard-amd64:v1.7.1 192.168.31.159:5000/google_containers/kubernetes-dashboard-amd64:latest
docker tag registry.access.redhat.com/rhel7/pod-infrastructure:latest 192.168.31.159:5000/rhel7/pod-infrastructure:latest
docker push 192.168.31.159:5000/google_containers/kubernetes-dashboard-amd64:latest
docker push 192.168.31.159:5000/rhel7/pod-infrastructure:latest
  • 在node上配置docker见下一节

  • 在node(192.168.31.196)上尝试拉取镜像

docker pull 192.168.31.159:5000/google_containers/kubernetes-dashboard-amd64:latest
docker pull 192.168.31.159:5000/rhel7/pod-infrastructure:latest

配置

  • Docker配置
 #vim /etc/sysconfig/docker
 OPTIONS='--insecure-registry 192.168.31.159:5000'
if [ -z "${DOCKER_CERT_PATH}" ]; then
    DOCKER_CERT_PATH=/etc/docker
fi

可以通过pull尝试拉取,以验证配置是否正确。

  • Master, etcd配置
#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://192.168.31.159:2379"
  • Master, flannel配置
#vim /etc/sysconfig/flanneld
# Flanneld configuration options  

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://192.168.31.159:2379"#etcd地址

# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/kube/network"

# Any additional options that you want to pass
FLANNEL_OPTIONS="-iface=enp3s0"#指定可以连同node的网络
  • Master, kubernetes配置
# vim /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"#0000其他地址可以访问

# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"#指定访问端口

# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"#kubelet端口,默认即可

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.31.159:2379"#etcd地址,这里配置在master上

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/16"#服务直接所分配的ip(docker)

# default admission control policies
# ServiceAccount
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

# Add your own!
KUBE_API_ARGS=""
#vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://192.168.31.159:8080"
  • Node, Kubernetes配置
# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"

# The port for the info server to serve on
KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=192.168.31.196"

# location of the api-server
KUBELET_API_SERVER="--api-servers=http://192.168.31.159:8080"

# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure"

# Add your own!
KUBELET_ARGS=""
#vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://192.168.31.159:8080"
  • Node, flannel配置
#vim  vim /etc/sysconfig/flanneld 
FLANNEL_ETCD_ENDPOINTS="http://192.168.31.159:2379"

# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/kube/network"

# Any additional options that you want to pass
FLANNEL_OPTIONS="-iface=eno1"

启动并验证

# master
systemctl start docker
systemctl start etcd
systemctl start flanneld
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
#node
systemctl start docker
systemctl start flanneld
systemctl start kube-proxy
systemctl start kubelet

http://192.168.31.159:8080 查看所有请求url
http://192.168.31.159:8080/healthz/ping 查看健康状况

部署Dashboard

下载kube-dashboard.yaml
kubectl create -f kube-dashboard.yaml

遇到的问题

  • 注意服务的启动顺序,特别是master,在确保etcd启动的情况下,先启动apiserver
  • 注意yaml文件的格式缩进
  • 如果发现访问出现timed out,可能是因为防火墙等未关闭.
# systemctl stop firewalld && systemctl disable firewalld
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled
  • 我在部署Dashboard时,无法创建kubernetes-dashboard,说是已经存在。刚开始只是简单的删除pods,发现过一会儿又重新creating。这是因为在pods之上还有deployment, service, replicas…等资源,需要将他们delete之后,才可创建新的dashboard.

参考:

http://www.jb51.net/article/94343.htm
http://blog.csdn.net/u010397369/article/details/42422243
https://www.kubernetes.org.cn/3096.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值