zoukankan      html  css  js  c++  java
  • Kubernetes多master部署(6)---安装master

    • 获取K8S二进制包

    包:kubernetes-server-linux-amd64.tar.gz

    三台master都要操作

    master需要三个组件:kube-apiserver kube-controller-manager kube-scheduler

    我们将其拿出来 放入指定目录:

    tar -zxvf kubernetes-server-linux-amd64.tar.gz
    cp kubernetes/server/bin/kube-scheduler ./
    cp kubernetes/server/bin/kube-controller-manager ./
    cp kubernetes/server/bin/kube-apiserver ./
    [root@localhost kubernetes]# ls
    apiserver.sh controller-manager.sh kube-apiserver kube-controller-manager kubectl kube-scheduler master.zip scheduler.sh
    
    mv kube-apiserver kube-controller-manager kube-scheduler /opt/kubernetes/bin/
    赋予权限
    chmod +x /opt/kubernetes/bin/*
    
    
    echo "export PATH=$PATH:/opt/kubernetes/bin" >> /etc/profile

    安装kube-apiserver

    #################################################################################
    
    #readme
    #./apiserver.sh 10.50.182.65 https://10.50.182.65:2379,https://10.50.182.66:2379,https://10.50.182.67:2379
    
    MASTER_ADDRESS=${1:-"10.50.182.65"}
    ETCD_SERVERS=${2:-"http://127.0.0.1:2379"}
    
    cat <<EOF >/opt/kubernetes/cfg/kube-apiserver
    
    KUBE_APISERVER_OPTS="--logtostderr=true \
    --v=4 \
    --etcd-servers=${ETCD_SERVERS} \
    --insecure-bind-address=0.0.0.0 \
    --bind-address=${MASTER_ADDRESS} \
    --insecure-port=8080 \
    --secure-port=6443 \
    --advertise-address=${MASTER_ADDRESS} \
    --allow-privileged=true \
    --service-cluster-ip-range=10.147.224.0/20 \
    --admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota,NodeRestriction 
    --authorization-mode=RBAC,Node \
    --kubelet-https=true \
    --enable-bootstrap-token-auth \
    --token-auth-file=/opt/kubernetes/cfg/token.csv \
    --service-node-port-range=30000-50000 \
    --tls-cert-file=/opt/kubernetes/ssl/server.pem \
    --tls-private-key-file=/opt/kubernetes/ssl/server-key.pem \
    --client-ca-file=/opt/kubernetes/ssl/ca.pem \
    --service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \
    --etcd-cafile=/opt/kubernetes/ssl/ca.pem \
    --etcd-certfile=/opt/kubernetes/ssl/server.pem \
    --etcd-keyfile=/opt/kubernetes/ssl/server-key.pem"
    
    EOF
    
    cat <<EOF >/usr/lib/systemd/system/kube-apiserver.service
    [Unit]
    Description=Kubernetes API Server
    Documentation=https://github.com/kubernetes/kubernetes
    
    [Service]
    EnvironmentFile=-/opt/kubernetes/cfg/kube-apiserver
    ExecStart=/opt/kubernetes/bin/kube-apiserver $KUBE_APISERVER_OPTS
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    systemctl daemon-reload
    systemctl enable kube-apiserver
    systemctl restart kube-apiserver

    执行脚本:

    ./apiserver.sh 10.50.182.65 https://10.50.182.65:2379,https://10.50.182.66:2379,https://10.50.182.67:2379

    安装:controller-manager

    [root@localhost master_pkg]# cat controller-manager.sh
    #!/bin/bash
    
    MASTER_ADDRESS=${1:-"127.0.0.1"}
    
    cat <<EOF >/opt/kubernetes/cfg/kube-controller-manager
    
    
    KUBE_CONTROLLER_MANAGER_OPTS="--logtostderr=true \
    --v=4 \
    --master=${MASTER_ADDRESS}:8080 \
    --leader-elect=true \
    --address=127.0.0.1 \
    --service-cluster-ip-range=10.10.10.0/24 \
    --cluster-name=kubernetes \
    --cluster-signing-cert-file=/opt/kubernetes/ssl/ca.pem \
    --cluster-signing-key-file=/opt/kubernetes/ssl/ca-key.pem \
    --service-account-private-key-file=/opt/kubernetes/ssl/ca-key.pem \
    --root-ca-file=/opt/kubernetes/ssl/ca.pem"
    
    EOF
    
    cat <<EOF >/usr/lib/systemd/system/kube-controller-manager.service
    [Unit]
    Description=Kubernetes Controller Manager
    Documentation=https://github.com/kubernetes/kubernetes
    
    [Service]
    EnvironmentFile=-/opt/kubernetes/cfg/kube-controller-manager
    ExecStart=/opt/kubernetes/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_OPTS
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    systemctl daemon-reload
    systemctl enable kube-controller-manager
    systemctl restart kube-controller-manager

    执行脚本安装启动,日志在/var/log/messages:

    ./controller-manager.sh 127.0.0.1
    ps uxa |grep controller-manager

    安装scheduler:

    编写安装脚本:

    [root@localhost master_pkg]# cat scheduler.sh
    #!/bin/bash
    
    MASTER_ADDRESS=${1:-"127.0.0.1"}
    
    cat <<EOF >/opt/kubernetes/cfg/kube-scheduler
    
    KUBE_SCHEDULER_OPTS="--logtostderr=true \
    --v=4 \
    --master=${MASTER_ADDRESS}:8080 \
    --leader-elect"
    
    EOF
    
    cat <<EOF >/usr/lib/systemd/system/kube-scheduler.service
    [Unit]
    Description=Kubernetes Scheduler
    Documentation=https://github.com/kubernetes/kubernetes
    
    [Service]
    EnvironmentFile=-/opt/kubernetes/cfg/kube-scheduler
    ExecStart=/opt/kubernetes/bin/kube-scheduler $KUBE_SCHEDULER_OPTS
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    systemctl daemon-reload
    systemctl enable kube-scheduler
    systemctl restart kube-scheduler

    执行脚本安装启动,日志在/var/log/messages:

    ./scheduler.sh 127.0.0.1
    ps aux |grep scheduler

    测试集群:

  • 相关阅读:
    python笔记2-python常见数据类型(一)
    python笔记1-环境安装和基本语法
    selenium自动化脚本错误总结
    Postman-Post请求示例
    用PHP删除ftp下载导致的文件空行
    JS实现鼠标悬浮,显示内容
    asp.net中处理程序调用HttpContext.Current.Session获取值出错
    自动化创建tornado项目
    fabric运维
    Python3虚拟环境安装:virtualenv、virtualenvwralpper
  • 原文地址:https://www.cnblogs.com/litzhiai/p/10815235.html
Copyright © 2011-2022 走看看