`
lykops
  • 浏览: 86213 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

kubernetes1.5.2集群部署过程--非安全模式

 
阅读更多

运行环境

宿主机:CentOS7 7.3.1611
关闭selinux
etcd 3.1.9
flunnel 0.7.1
docker 1.12.6
kubernetes 1.5.2

安装软件

yum install etcd kubernetes kubernetes-client kubernetes-master kubernetes-node flannel docker docker-devel docker-client docker-common -y

部署etcd

IP=$(ifconfig ens33 | grep inet | grep -v inet6 | gawk {'print $2'})
cat << EOF > /etc/etcd/etcd.conf
# [member]
ETCD_NAME=${HOSTNAME}
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
#ETCD_SNAPSHOT_COUNT="10000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="http://${IP}:2380,http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://${IP}:2379,http://localhost:2379"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
#ETCD_CORS=""
#
#[cluster]
# ETCD_INITIAL_ADVERTISE_PEER_URLS="http://${IP}:2380"  # 如果部署集群的话,把这个注释去掉
# ETCD_INITIAL_CLUSTER="kube-master=http://192.168.20.128:2380,kube-node1=http://192.168.20.131:2380,kube-node2=http://192.168.20.132:2380,kube-node3=http://192.168.20.134:2380,kube-node4=http://192.168.20.135:2380"# 如果部署集群的话,把这个注释去掉
#ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://${IP}:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_SRV=""
......
EOF

service etcd start systemctl enable etcd

kubernetes

kube-master

cat << EOF > /etc/kubernetes/apiserver
# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"

# Port minions listen on
KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.20.128:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/24"

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

# Add your own!
KUBE_API_ARGS=""
EOF

注意,如果出现这样的错误:

replica_set.go:448] Sync "" failed with unable to create pods: No API token found for service account "default", retry after the token is automatically created and added to the service account

是因为KUBEADMISSIONCONTROL="..."中的ServiceAccount引起的,改为

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"就恢复了

node端

cat << EOF > /etc/kubernetes/kubelet
###
# kubernetes kubelet (minion) config

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
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=${HOSTNAME}"

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

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

# Add your own!
KUBELET_ARGS=""
EOF

kube-master和node端均执行

配置日志目录

mkdir -p /var/log/kubernetes
chown -R kube:kube /var/log/kubernetes

配置config文件

cat << EOF > /etc/kubernetes/config
###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=false --log-dir=/var/log/kubernetes"

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

# 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.20.128:8080"
EOF

KUBE_MASTER="--master=http://192.168.20.128:8080"是将Kubernetes的apiserver进程的服务地址告诉Kubernetes的controller-manager, scheduler和proxy进程。

配置flannel网络

flannel服务是打通node节点的docker网络,实现docker跨主机通讯

配置IP地址

在etcd主机上执行

etcdctl mk /coreos.com/network/config '{"Network":"172.16.0.0/16"}'

测试 etcdctl get /coreos.com/network/config {"Network":"172.16.0.0/16"}

配置文件

需要使用flannel网络的所有主机执行 cat << EOF > /etc/sysconfig/flanneld # Flanneld configuration options

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

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

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""
EOF

启动服务

kube-master

for SERVICES in kube-apiserver kube-controller-manager kube-scheduler flanneld
#如果在master上不运行kube-proxy docker等服务,就不需要启动
do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
done

node端

for SERVICES in kube-proxy docker flanneld kubelet
do
    systemctl restart $SERVICES
    systemctl enable $SERVICES 
done

测试

在kube-master上执行:

kubectl get nodes
NAME         STATUS    AGE
kube-node1   Ready     1d

能看到所有的node主机,表示部署成功

分享到:
评论

相关推荐

    kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64.rpm

    离线安装包,亲测可用

    scipy-1.5.2-cp37-cp37m-win_amd64.whl

    scipy-1.5.2-cp37-cp37m-win_amd64.whl由于从下载文件较慢,所以在此提供下载,本文件对应python3.7版本为轮子文件,可通过pip安装

    kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64.rpm

    离线安装包,亲测可用

    kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64.rpm

    离线安装包,亲测可用

    Akasia-1.5.2-py3-none-any.whl.zip

    标题中的"Akasia-1.5.2-py3-none-any.whl.zip"是一个压缩文件,其中包含了Python的轮子(wheel)包。在Python的生态系统中,轮子是一种二进制分发格式,用于简化软件包的安装过程。"Akasia"很可能是该软件包的名称,...

    AidlabSDK-1.5.2-py3-none-any.whl.zip

    标题中的"AidlabSDK-1.5.2-py3-none-any.whl.zip"表明这是一个与Aidlab SDK相关的软件开发工具包,版本为1.5.2,它被打包成一个适用于Python 3环境的wheel文件(.whl)。Wheel文件是Python的一种二进制分发格式,...

    PyPI 官网下载 | scipy-1.5.2-cp36-cp36m-macosx_10_9_x86_64.whl

    **PyPI 官网下载 | scipy-1.5.2-cp36-cp36m-macosx_10_9_x86_64.whl** 在Python的生态系统中,PyPI(Python Package Index)是官方的第三方库分发平台,它允许开发者上传并分享他们的Python模块和软件包。`scipy`是...

    AlexaPy-1.5.2-py3-none-any.whl.zip

    总的来说,"AlexaPy-1.5.2-py3-none-any.whl.zip" 是一个针对 Python 3 的 AlexaPy 库的 Wheel 包,它简化了与 Amazon Alexa 服务的集成过程,使开发者能够快速构建和测试 Alexa 技能。通过解压缩并使用 pip 安装...

    AX3_model_extras-1.5.2-py3-none-any.whl.zip

    标题 "AX3_model_extras-1.5.2-py3-none-any.whl.zip" 提供的信息表明,这是一个与Python编程相关的压缩包,其中包含一个名为 "AX3_model_extras" 的库的特定版本(1.5.2)。".whl" 文件扩展名是Python的 Wheel 格式...

    scipy-1.5.2-cp38-cp38-win_amd64.rar

    此包为在windows系统上,使用pip安装scipy的包,主要用于机器学习,大数据等; 国内不容易下载。此包为三包之一,还有另外两个包: numpy-1.19.1-cp38-cp38-win_amd64.rar,scikit_learn-0.23.2-cp38-cp38-win_amd64...

    torch_cluster-1.5.2-cp37-cp37m-linux_x86_64whl.zip

    需要配和指定版本torch-1.14.0+cu100使用,请在安装该模块前提前安装官方命令安装torch-1.14.0+cu100对应cuda10.0和cudnn,注意电脑需要有nvidia显卡才行,仅仅支持RTX2080及其以前显卡,不支持AMD显卡,RTX30系列,...

    Adafruit_BMP-1.5.2-py2-none-any.whl.zip

    标题 "Adafruit_BMP-1.5.2-py2-none-any.whl.zip" 提供的是一个特定软件库的压缩包,它包含了 Adafruit BMP 库的版本 1.5.2。这个库是为 Python 2 设计的,且适用于任何平台(“none-any”标识)。"whl" 标签表明这...

    Python库 | quarchpy-1.5.2-py2-none-any.whl

    在本文中,我们将深入探讨“quarchpy-1.5.2-py2-none-any.whl”这个Python库,了解其背景、用途、安装方法以及如何在实际项目中应用。 “quarchpy-1.5.2-py2-none-any.whl”是一个Python二进制分发包,属于Python 2...

    adversarial_robustness_toolbox-1.5.2-py3-none-any.whl.zip

    《对抗性鲁棒性工具箱:adversarial_robustness_toolbox-1.5.2-py3-none-any.whl.zip详解》 在当前数字化时代,机器学习和深度学习模型已经成为许多领域的核心技术,但同时也面临着一个严重的问题——对抗性攻击。...

    Adafruit_MCP9808-1.5.2-py2-none-any.whl.zip

    标题中的"Adafruit_MCP9808-1.5.2-py2-none-any.whl.zip"指示了这是一个Python库的压缩包,用于与Adafruit MCP9808温度传感器进行交互。Adafruit是一家知名的开源硬件供应商,而MCP9808是一款精确的I2C数字温度...

    babachi-1.5.2-py3-none-any.whl

    babachi-1.5.2-py3-none-any.whl

    PyPI 官网下载 | autosys-1.5.2-py3-none-any.whl

    《PyPI官网下载:autosys-1.5.2-py3-none-any.whl》 在Python开发领域,PyPI(Python Package Index)是全球最大的Python软件仓库,它为开发者提供了一个集中发布和获取Python软件包的平台。本文将详细探讨PyPI、...

    CellCognition-1.5.2-cp27-none-win32

    CellCognition-1.5.2-cp27-none-win32

    Python库 | ltool-1.5.2-py3-none-any.whl

    在本文中,我们将深入探讨名为“ltool”的Python库,版本为1.5.2,以及其对应的安装文件“ltool-1.5.2-py3-none-any.whl”。 首先,让我们理解一下“.whl”文件。这是一种Python的二进制分发格式,用于简化库的安装...

    Authcode-1.5.2-py2-none-any.whl.zip

    Authcode-1.5.2-py2-none-any.whl.zip

Global site tag (gtag.js) - Google Analytics