ubuntu16.04 kubeadm快速搭建kubernetes环境
来源:互联网 发布:两点最短路线 算法 编辑:程序博客网 时间:2024/05/18 23:54
刚开始百度到一些很复杂的教程,不太方便入门。
由于kebernetes的源放在google,所以,需要科学上网。
kubernetes的基础知识请自行找教程学习。
主要参考:
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
http://blog.csdn.net/ximenghappy/article/details/70157361
step1:安装相应软件
apt-get update apt-get install -y curl apt-transport-httpscurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -cat <<EOF >/etc/apt/sources.list.d/kubernetes.listdeb http://apt.kubernetes.io/ kubernetes-xenial mainEOFapt-get update#如果没有安装docker的需要先安装docker,我用官网最新版本的docker遇到版本不匹配的情况,所以还是按照官方教程做比较好apt-get install -y docker.io apt-get install -y kubelet kubeadm kubectl kubernetes-cni
step2:使用kubeadm 初始化 kubernetes 集群
kubeadm init --pod-network-cidr=10.244.0.0/16
这个时候,kubeadm会初始化各种环境配置,包括部署证书(private ca)和密钥,然后调用docker pull相应的镜像
以下是log输出
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.[init] Using Kubernetes version: v1.6.6[init] Using Authorization modes: [RBAC][preflight] Running pre-flight checks[certificates] Generated CA certificate and key.[certificates] Generated API server certificate and key.[certificates] API Server serving cert is signed for DNS names [c-pc kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.217.135][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 710.502147 seconds[token] Using token: c64554.15b62d72ae89cbb3[apiconfig] Created RBAC rules[addons] Applied essential addon: kube-proxy[addons] Applied essential addon: kube-dnsYour Kubernetes master has initialized successfully!To start using your cluster, you need to run (as a regular user): mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/configYou 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 nodeas root: kubeadm join --token c64554.15b62d72ae89cbb3 192.168.217.135:6443
提示:在log看到这句输出的时候,docker就开始pull对应的镜像,比较耗时,耗时取决于你的网速
[apiclient] Created API client, waiting for the control plane to become ready
pull完镜像后,可以看到
root@c-pc:~# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEgcr.io/google_containers/kube-proxy-amd64 v1.6.6 b01133efa4f0 2 weeks ago 109 MBgcr.io/google_containers/kube-controller-manager-amd64 v1.6.6 a1b8bfeff845 2 weeks ago 132.9 MBgcr.io/google_containers/kube-apiserver-amd64 v1.6.6 eaedf2552acd 2 weeks ago 150.7 MBgcr.io/google_containers/kube-scheduler-amd64 v1.6.6 b662c4a72c62 2 weeks ago 76.75 MBgcr.io/google_containers/etcd-amd64 3.0.17 243830dae7dd 4 months ago 168.9 MBgcr.io/google_containers/pause-amd64 3.0 99e59f495ffa 14 months ago 746.9 kB
kubectl查看node和pod的状态
根据log提示,需要配置kubectl的配置,
初始化kubectl配置
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
需要先执行以上操作,否则会遇到以下错误提示
root@c-pc:~# kubectl get nodesThe connection to the server localhost:8080 was refused - did you specify the right host or port?
最新的kubectl链接api server不是通过8080端口连接的,而是通过6443端口,可以在admin.conf查看
...server: https://192.168.217.135:6443...
初始化kubectl配置之后
root@c-pc:~# kubectl get nodesThe connection to the server localhost:8080 was refused - did you specify the right host or port?root@c-pc:~# mkdir -p $HOME/.kuberoot@c-pc:~# cp -i /etc/kubernetes/admin.conf $HOME/.kube/configroot@c-pc:~# chown $(id -u):$(id -g) $HOME/.kube/configroot@c-pc:~# kubectl get nodesNAME STATUS AGE VERSIONc-pc NotReady 3h v1.7.0
居然是NotReady状态!!
查看以下pods的状态,发现kube-dns 还在挂起,怪不得docker images的时候没有发现kube-dns镜像
root@c-pc:~# kubectl get pods --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-system etcd-c-pc 1/1 Running 0 3hkube-system kube-apiserver-c-pc 1/1 Running 0 3hkube-system kube-controller-manager-c-pc 1/1 Running 0 3hkube-system kube-dns-2838158301-v0srq 0/3 Pending 0 3hkube-system kube-proxy-ql2g0 1/1 Running 0 3hkube-system kube-scheduler-c-pc 1/1 Running 0 3h
按照官网教程,需要配置pod的网络,这里使用了flannel网络,依次执行
kubectl create -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel-rbac.ymlkubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
查看以下pods的状态
root@c-pc:~# kubectl get pods --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-system etcd-c-pc 1/1 Running 0 3hkube-system kube-apiserver-c-pc 1/1 Running 0 3hkube-system kube-controller-manager-c-pc 1/1 Running 0 3hkube-system kube-dns-2838158301-v0srq 0/3 Pending 0 3hkube-system kube-flannel-ds-vp7mt 0/2 ContainerCreating 0 12skube-system kube-proxy-ql2g0 1/1 Running 0 3hkube-system kube-scheduler-c-pc 1/1 Running 0 3h
这个时候开始创建pull flannel的image了,稍等一下,
root@c-pc:~# kubectl get nodesNAME STATUS AGE VERSIONc-pc Ready 3h v1.7.0root@c-pc:~# kubectl get pods --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-system etcd-c-pc 1/1 Running 0 3hkube-system kube-apiserver-c-pc 1/1 Running 0 3hkube-system kube-controller-manager-c-pc 1/1 Running 0 3hkube-system kube-dns-2838158301-v0srq 3/3 Running 0 3hkube-system kube-flannel-ds-vp7mt 2/2 Running 0 6mkube-system kube-proxy-ql2g0 1/1 Running 0 3hkube-system kube-scheduler-c-pc 1/1 Running 0 3h
node的状态变成ready,good!
在另外一台机器上
kubeadm join –token c64554.15b62d72ae89cbb3 192.168.217.135:6443
在master主机上可以看到
root@c-pc:~# kubectl get nodesNAME STATUS AGE VERSIONc-pc Ready 4h v1.7.0c-pc2 Ready 27s v1.7.0
- ubuntu16.04 kubeadm快速搭建kubernetes环境
- 使用Kubeadm快速搭建Kubernetes(docker)
- 【转】使用Kubeadm快速搭建Kubernetes(docker)
- kubeadm 搭建 kubernetes 集群
- kubeadm 搭建 kubernetes 集群
- 用kubeadm 搭建 Kubernetes
- Kubernetes-1.5.3环境搭建(使用Kubeadm)
- kubeadm快速部署kubernetes(HA)
- 【Ubuntu】 Ubuntu16.04快速搭建环境
- Ubuntu16.04环境搭建
- 国内使用 kubeadm 在 Centos 7 搭建 Kubernetes 集群
- kubeadm搭建kubernetes集群之一:构建标准化镜像
- kubeadm搭建kubernetes集群之二:创建master节点
- kubeadm搭建kubernetes集群之三:加入node节点
- kubeadm搭建kubernetes集群之二:创建master节点
- centos7环境下kubeadm方式部署 kubernetes 1.7
- 使用kubeadm安装kubernetes
- kubeadm安装kubernetes(calico)
- CMake入门实战 补充说明
- Comparison method violates its general contract!
- Future、Callable和Executor
- Qt里的堆栈窗口的使用(系列一)
- SpringBoot开发详解(十一) -- Redis在SpringBoot中的整合
- ubuntu16.04 kubeadm快速搭建kubernetes环境
- ZooKeeper系列(一)
- DB2教程
- 计算字符串的长度及sizeof与strlen、gets与scanf、字符数组与字符串
- ServletContext对象介绍
- java刷题之查漏补缺(三)
- LINQ系列:Linq to Object元素操作符
- JAVA 攻城狮 第三天
- 数组中重复的数字