美文网首页
kubernetes的kubeadm

kubernetes的kubeadm

作者: kf_0169 | 来源:发表于2019-06-17 11:51 被阅读0次

    基础环境

    系统 名称 内存 IP
    centos7.2 master 2G 192.168.2.122
    centos7.2 node 2G 192.168.2.123
    centos7.2 node 2G 192.168.2.124

    1、环境准备

    • 关闭防火墙
      systemctl stop firewalld
      systemctl disable firewalld

    • 关闭selinux
      sed -i 's/enforcing/disabled/' /etc/selinux/config
      setenforce 0

    • 关闭swap:
      swapoff -a 临时

    vim /etc/fstab 永久
    注释掉swap那一行

    • 添加主机名与IP对应关系
      追加
      cat << EOF >> /etc/hosts
      192.168.2.122 k8s-master
      192.168.2.123 k8s-node1
      192.168.2.124 k8s-node2
      EOF

    • 将桥接的ip4流量传递到iptables的链上
      新建k8s.conf
      cat << EOF > /etc/sysctl.d/k8s.conf
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
      应用
      sysctl --system

    2、所有节点安装dokcer/kubeadm/kubelet

    查看版本
    https://www.jianshu.com/p/75091ad364c1 
    

    yum install -y kubelet-1.13.5 kubeadm-1.13.5 kubectl-1.13.5
    发现1.13.5版本不报错,1.13.3报错

    报错简单解决
    https://blog.csdn.net/u013355826/article/details/89557989
    复杂解决
    https://blog.51cto.com/sdsca/2383374?source=dra
    

    systemctl enable kubelet

    3、部署kubernetes master

    • kubeadm init
      --apiserver-advertise-address=192.168.2.122
      --image-repository registry.aliyuncs.com/google_containers
      --kubernetes-version v1.13.5
      --service-cidr=10.1.0.0/16
      --pod-network-cidr=10.244.0.0/16

    • 执行kubectl工具
      此命令在安装完master完成后提示的

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    如果等10min
    kube-flannel-ds-amd64-5zpfz 0/1 Init:ErrImagePull 0 2m1s
    还是这样
    就自己拉取镜像quay.io/coreos/flannel:v0.11.0-amd64再文件kube-flannel.yml里看得到
    这个一起lizhenliang/flannel:v0.11.0-amd64

    • 添加从节点node
      此命令在安装完master完成后提示的
      kubeadm join 192.168.2.122:6443 --token o1910k.y2vg71t9xjlz0gxf --discovery-token-ca-cert-hash sha256:73485c5142af7857bb517e9ff99385f4124bee5c022cbd7a317d60b866bf582a
      再次查看kubeadm join这个token
    kubeadm token create --print-join-command
    
    • 测试kubernetes集群
      用命令启动一个nginx
      kubectl create deployment nginx-fanlei --image=nginx
      暴露服务
      kubectl expose deployment nginx-fanlei --port=80 --type=NodePort --target-port=80 --name=nginx-service
    这一步说是将服务暴露出去,实际上是在服务前面加一个负载均衡,因为pod可能分布在不同的结点上。 
    –port:暴露出去的端口 
    –type=NodePort:使用结点+端口方式访问服务 
    –target-port:容器的端口 
    –name:创建service指定的名称
    https://blog.csdn.net/sinat_35930259/article/details/80008750 
    

    查看浏览器访问端口
    kubectl get pod,svc

    kind: Service
    apiVersion: v1
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kube-system
    spec:
      type:NodePort
      ports:
        - port: 443
          targetPort: 8443
      selector:
        k8s-app: kubernetes-dashboard
    

    应用
    kubectl apply -f kubernetes-dashboard.yaml

    • 创建并绑定token(UI账户登陆)
      kubectl create serviceaccount dashboard-admin -n kube-system
      kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
      查看token
    kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
    

    相关文章

      网友评论

          本文标题:kubernetes的kubeadm

          本文链接:https://www.haomeiwen.com/subject/dktafctx.html