zoukankan      html  css  js  c++  java
  • Kubernetes v1.10 快速安装(只需三步)

    K8sv1.10快速安装,只需三步即可(执行三个.sh脚本,下面贴出了脚本内容,直接复制即可)

    #测试环境centos 7.3 , docker 17.06

    • 第一步:初始化环境

    ~]# vi env_set.sh

     1 #!/bin/bash
     2 
     3 #check
     4 
     5 [[ $UID -ne 0 ]]&& { echo "Must run in root user !";exit; }
     6 
     7 echo '# 基础配置#
     8 
     9 #关闭防火墙
    10 
    11 #关闭Selinux
    12 
    13 #关闭Swap
    14 
    15 #内核配置
    16 
    17 #防火墙#
    18 
    19 systemctl stopfirewalld &>/dev/null
    20 
    21 systemctl disablefirewalld &>/dev/null
    22 
    23 [[ -f /etc/init.d/ufw]] && { ufw disable;}
    24 
    25 [[ -f/etc/init.d/iptables ]] && { /etc/init.d/iptables stop; }
    26 
    27 #关闭Selinux
    28 
    29 setenforce  0 &>/dev/null
    30 
    31 sed -i"s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
    32 
    33 sed -i"s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
    34 
    35 sed -i"s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
    36 
    37 sed -i"s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
    38 
    39 #关闭Swap
    40 
    41 swapoff -a
    42 
    43 sed's/.*swap.*/#&/' /etc/fstab &>/dev/null
    44 
    45 #内核#
    46 
    47 cat <<EOF >/etc/sysctl.d/k8s.conf
    48 
    49 net.ipv4.ip_forward =1
    50 
    51 net.bridge.bridge-nf-call-ip6tables= 1
    52 
    53 net.bridge.bridge-nf-call-iptables= 1
    54 
    55 vm.swappiness=0
    56 
    57 EOF
    58 
    59 sysctl -p/etc/sysctl.d/k8s.conf &>/dev/null
    60 
    61 echo "sysctl -p/etc/sysctl.d/k8s.conf" >>/etc/profile
    62 
    63 echo "#myset
    64 
    65 * soft nofile 65536
    66 
    67 * hard nofile 65536
    68 
    69 * soft nproc 65536
    70 
    71 * hard nproc 65536
    72 
    73 * soft  memlock unlimited
    74 
    75 * hard memlock  unlimited
    76 
    77 ">>/etc/security/limits.conf
    78 
    79 #hosts
    点开查看env_set.sh脚本
    • 第二步:下载相关组件

    ~]# vi download.sh

     1 #安装kubelet kubeadm
     2 
     3 curl -s http://elven.vip/ks/sh/kubelet.sh|bash
     4 
     5 echo '下载K8S相关镜像'
     6 
     7 MyUrl=registry.cn-shanghai.aliyuncs.com/alik8s
     8 
     9 images=(kube-proxy-amd64:v1.10.0kube-controller-manager-amd64:v1.10.0 kube-scheduler-amd64:v1.10.0kube-apiserver-amd64:v1.10.0 etcd-amd64:3.1.12kubernetes-dashboard-amd64:v1.8.3 heapster-grafana-amd64:v4.4.3heapster-influxdb-amd64:v1.3.3 heapster-amd64:v1.4.2k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s-dns-sidecar-amd64:1.14.8k8s-dns-kube-dns-amd64:1.14.8 pause-amd64:3.1)
    10 
    11 #
    12 
    13 for imageName in${images[@]} ; do
    14 
    15   docker pull $MyUrl/$imageName
    16 
    17   docker tag $MyUrl/$imageNamek8s.gcr.io/$imageName
    18 
    19   docker rmi $MyUrl/$imageName
    20 
    21 done
    22 
    23 #
    24 
    25 docker pull$MyUrl/flannel:v0.10.0-amd64
    26 
    27 docker tag$MyUrl/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
    28 
    29 docker rmi$MyUrl/flannel:v0.10.0-amd64
    30 
    31 echo '下载yml文件,部署flannel网络,dashboard用到'
    32 
    33 mkdir -p$HOME/k8s/heapster ; cd $HOME/
    34 
    35 YmlUrl=http://elven.vip/ks/k8s/oneinstall/yml
    36 
    37 curl -s$YmlUrl/kube-flannel.yml >k8s/kube-flannel.yml
    38 
    39 curl -s$YmlUrl/kubernetes-dashboard.yaml >k8s/kubernetes-dashboard.yaml
    40 
    41 curl -s$YmlUrl/heapster-rbac.yaml >k8s/heapster-rbac.yaml
    42 
    43 curl -s$YmlUrl/heapster/influxdb.yaml >k8s/heapster/influxdb.yaml
    44 
    45 curl -s$YmlUrl/heapster/heapster.yaml >k8s/heapster/heapster.yaml
    46 
    47 curl -s$YmlUrl/heapster/grafana.yaml >k8s/heapster/grafana.yaml
    48 
    49 echo 
    50 
    51 echo '镜像列表'
    52 
    53 docker images |egrep'k8s.gcr.io|quay.io'
    54 
    55 echo 
    56 
    57 echo "yml部署文件"
    58 
    59 ls -l $HOME/k8s/
    60 
    61 echo 
    点开查看download.sh脚本
    • 第三步:安装部署k8s

    ~]# vi install.sh

      1 #!/bin/bash
      2 
      3 #k8s v1.10 master 单节点安装
      4 
      5 #check
      6 
      7 [[ $UID -ne 0 ]]&& { echo "Must run in root user !";exit; }
      8 
      9 #重置#
     10 
     11 kubeadm reset&>/dev/null
     12 
     13 echo -e"33[32m初始化安装K8S Master33[0m"
     14 
     15 kubeadm init--kubernetes-version=v1.10.0 --pod-network-cidr=10.244.0.0/16 |tee /tmp/install.log
     16 
     17 echo 
     18 
     19 echo -e"33[32mk8s node节点代码保存到$HOME/k8s.add.node.txt33[0m"
     20 
     21 grep 'kubeadm join'/tmp/install.log >$HOME/k8s.add.node.txt
     22 
     23 rm -f/tmp/install.log
     24 
     25 sleep 2
     26 
     27 #默认token有效期24小时,生成一个永不过期的
     28 
     29 Token=`kubeadm tokencreate --ttl 0`
     30 
     31 # echo $Token
     32 
     33 # kubeadm token list
     34 
     35 sed -i -r"s#(.*) --token (.*) --discovery(.*)#1 --token $Token --discovery3#"$HOME/k8s.add.node.txt
     36 
     37 #kubectl认证
     38 
     39 exportKUBECONFIG=/etc/kubernetes/admin.conf
     40 
     41 echo "exportKUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
     42 
     43 ##
     44 
     45 echo "# used forkubectl ,k8s" >/etc/profile
     46 
     47 echo "exportKUBECONFIG=/etc/kubernetes/admin.conf" >>/etc/profile
     48 
     49 sleep 5
     50 
     51 echo -e"33[32m查看K8S状态33[0m"
     52 
     53 kubectl get cs
     54 
     55 #让master也运行pod
     56 
     57 kubectl taint nodes--all node-role.kubernetes.io/master-
     58 
     59 cd $HOME/
     60 
     61 echo -e"33[32m部署flannel网络 33[0m"
     62 
     63 kubectl create -fk8s/kube-flannel.yml
     64 
     65 sleep 5
     66 
     67 echo 
     68 
     69 echo -e"33[32m部署dashboard33[0m"
     70 
     71 kubectl create -fk8s/kubernetes-dashboard.yaml
     72 
     73 #dashboard监控图形化
     74 
     75 sleep 5
     76 
     77 kubectl create -fk8s/heapster/
     78 
     79 kubectl create -fk8s/heapster-rbac.yaml
     80 
     81 sleep 10
     82 
     83 echo -e"33[32m查看pod33[0m"
     84 
     85 kubectl get pods--all-namespaces
     86 
     87 echo 
     88 
     89 echo -e"33[32mdashboard登录令牌,保存到$HOME/k8s.token.dashboard.txt33[0m"
     90 
     91 kubectl -nkube-system describe secret $(kubectl -n kube-system get secret | grepadmin-user | awk '{print $1}') |awk '/token:/{print$2}'>$HOME/k8s.token.dashboard.txt
     92 
     93 echo 'dashboard登录令牌如下:'
     94 
     95 echo 
     96 
     97 cat$HOME/k8s.token.dashboard.txt
     98 
     99 echo 
    100 
    101 echo 'dashboard登录地址 https://本机IP:30000即: '
    102 
    103 IP=`sed -r 's#^.*join(.*):6443.*$#1#' $HOME/k8s.add.node.txt`
    104 
    105 echo "  https://$IP:30000"
    106 
    107 echo 
    108 
    109 echo '登录dashboard,输入令牌token'
    110 
    111 echo '推荐火狐浏览器'
    112 
    113 echo '若提示不安全的连接, 高级->添加例外'
    114 
    115 echo 
    116 
    117 echo 
    118 
    119 echo -e"33[32m添加k8s node节点代码如下:33[0m"
    120 
    121 echo 
    122 
    123 cat$HOME/k8s.add.node.txt
    124 
    125 echo 
    126 
    127 echo  "重新登录查看Node    kubectl getnodes"
    128 
    129 echo 
    130 
    131 exit
    点开查看install.sh脚本

    # 若安装失败,重新执行

    至此安装完成,访问dashboard登录地址https://本机IP:30000

    • 附:

    1、K8S节点加入命令:kubeadm token create --print-join-command (适用于1.9版本之后)

    2、Kubeadm 初始化时提示:

    unable toget URL "https://dl.k8s.io/release/stable-1.10.txt":Get https://storage.googleapis.com/kubernetes-release/release/stable-1.10.txt:dial tcp 216.58.200.48:443: i/o timeout

    解决方案:

    需要指定k8s版本:kubeadm init --kubernetes-version=1.10.0…………

    3、执行kubectl  get  pods提示:The connection to theserver localhost:8080 was refused - did you specify the right host or port?

    解决方案:

    $ sudo cp /etc/kubernetes/admin.conf $HOME/

    $sudochown $(id -u):$(id -g) $HOME/admin.conf

    $export KUBECONFIG=$HOME/admin.conf

    $ sudo cp /etc/kubernetes/kubelet.conf $HOME/

    $sudochown $(id -u):$(id -g) $HOME/kubelet.conf

    $export KUBECONFIG=$HOME/kubelet.conf

      -End-



    @Cooper_73 @gjs_73archer

    更多精彩内容请关注微信公众号“73号弓箭手

    博客主页链接: https://www.cnblogs.com/cooper-73/


  • 相关阅读:
    data filter 去掉HTML文件中的所有标记
    data filter 去掉HTML文件中的所有标记
    C++ 上溢和下溢(overflow underflow)
    C++ 上溢和下溢(overflow underflow)
    按字节提取整形数值(按位与运算符“&”、右移位运算符“>>”)
    按字节提取整形数值(按位与运算符“&”、右移位运算符“>>”)
    二进制、十进制、N进制 ○| ̄|_
    二进制、十进制、N进制 ○| ̄|_
    JAVA合法标识符
    JAVA合法标识符
  • 原文地址:https://www.cnblogs.com/cooper-73/p/9685580.html
Copyright © 2011-2022 走看看