美文网首页
通过Docker部署Kubernetes集群

通过Docker部署Kubernetes集群

作者: sun363587351 | 来源:发表于2017-07-12 00:23 被阅读0次

    Kubernetes 搭建有四种方式,简单评价一下:

    1.基于Docker 本地运行Kubernetes 先决条件: http://www.cnblogs.com/zhangeamon/p/5197655.html 参考资料: https://github.com/kubernetes/community/blob/master/contributors/devel/local-cluster/docker.md Install kubectl and shell auto complish: 评价: 这种方式我没有搭建成功,一直有can not connet 127.0.0.1:8080 的问题,后面感觉是没有创建./kube目录的原因。不过没有再试

    2.用minikube minikube是一个适合于在单机环境下搭建,它是创建出一个虚拟机来,并且Kubernetes官方好像已经停止对基于Docker本地运行Kubernetes的支持,参考:https://github.com/kubernetes/minikube, 但是因为它最好要求是virtualbox作为底层虚拟化driver,而我的bare metal 已经安装kvm了,我试了下存在冲突,所以也就没有用这种方式进行安装。

    3.用kubeadm 它是一个比较方便安装Kubernetes cluster的工具,我也是按照这种方式装成功的。后面会详细记录这种方式。

    4.一步步安装 每一个组件每一个组件进行安装,我还没有试,可以根据:https://github.com/opsnull/follow-me-install-kubernetes-cluster, 比较麻烦。

    5.在这里使用第三种kubeadm安装kunbernetes集群:1.Turn off SELinuxsudo setenforce 0sudo sed -i 's/enforcing/permissive/g' /etc/selinux/config2.Turn off firewalldsudo systemctl stop firewalldsudo systemctl disable firewalld3.Write the Kubernetes repository filecat

    (这种方式主要是下载Kubernetes集群服务所需的微服务Docker镜像,同时由于FW的限制有的镜像不能下载,这时就需要通过某些方式从国内下载或者中转后重新tag镜像名称)

    [kubernetes]

    name=Kubernetes

    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

    gpgcheck=0

    EOF

    docker pull registry.cn-hangzhou.aliyuncs.com/k8s16/kubernetes-dashboard-amd64

    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0

    docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/kube-proxy-amd64:v1.6.4

    docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/kube-scheduler-amd64:v1.6.4

    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/dnsmasq-metrics-amd64

    docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/k8s-dns-sidecar-amd64

    vim /etc/sysctl.conf

    net.bridge.bridge-nf-call-ip6tables = 1

    net.bridge.bridge-nf-call-iptables = 1

    net.bridge.bridge-nf-call-arptables = 1

    images=(

    pause-amd64:3.0

    kube-proxy-amd64:v1.6.4

    kube-scheduler-amd64:v1.6.4

    kube-controller-manager-amd64:v1.6.4

    kube-apiserver-amd64:v1.6.4

    etcd-amd64:3.0.17

    kube-discovery-amd64:1.0

    kubedns-amd64:1.9

    kube-dnsmasq-amd64:1.4

    exechealthz-amd64:v1.2.0

    dnsmasq-metrics-amd64:1.0

    )

    for imageName in ${images[@]} ; do

    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName

    docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName gcr.io/google_containers/$imageName

    docker rmi registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName

    done

    docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1

    images=(

    pause-amd64:3.0

    kube-proxy-amd64:v1.6.4

    )

    for imageName in ${images[@]} ; do

    docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/$imageName

    docker tag registry.cn-hangzhou.aliyuncs.com/kube_containers/$imageName gcr.io/google_containers/$imageName

    docker rmi registry.cn-hangzhou.aliyuncs.com/kube_containers/$imageName

    done

    yum install -y docker kubelet kubeadm kubectl kubernetes-cni

    [root@Master ~]# kubeadm init --pod-network-cidr=10.244.0.0/16

    [kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.

    [init] Using Kubernetes version: v1.6.4

    [init] Using Authorization mode: RBAC

    [preflight] Running pre-flight checks

    [preflight] Starting the kubelet service

    [certificates] Generated CA certificate and key.

    [certificates] Generated API server certificate and key.

    [certificates] API Server serving cert is signed for DNS names [Master kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 10.10.10.21]

    [certificates] Generated API server kubelet client certificate and key.

    [certificates] Generated service account token signing key and public key.

    [certificates] Generated front-proxy CA certificate and key.

    [certificates] Generated front-proxy client certificate and key.

    [certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"

    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"

    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"

    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"

    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"

    [apiclient] Created API client, waiting for the control plane to become ready

    [apiclient] All control plane components are healthy after 14.788750 seconds

    [apiclient] Waiting for at least one node to register

    [apiclient] First node has registered after 5.003681 seconds

    [token] Using token: e3d247.ab91b712406e2ecf

    [apiconfig] Created RBAC rules

    [addons] Created essential addon: kube-proxy

    [addons] Created essential addon: kube-dns

    Your Kubernetes master has initialized successfully!

    To start using your cluster, you need to run (as a regular user):

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

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

    export KUBECONFIG=$HOME/admin.conf

    You should now deploy a pod network to the cluster.

    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

    http://kubernetes.io/docs/admin/addons/

    You can now join any number of machines by running the following on each node

    as root:

    kubeadm join --token e3d247.ab91b712406e2ecf 10.10.10.21:6443

    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.6.0

    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64

    images=(

    kubernetes-dashboard-amd64:v1.6.0

    )

    for imageName in ${images[@]} ; do

    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName

    docker tag  registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName gcr.io/google_containers/$imageName

    docker rmi  registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName

    done

    相关文章

      网友评论

          本文标题:通过Docker部署Kubernetes集群

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