bestu 发表于 2019-2-20 07:43:17

docker 实践(十三)ks8 安装部署

  部署架构图:
http://s1.运维网.com/images/20190117/1547715226257581.png
  一、安装docker
  此时只支持docker18.06
  1.1.添加源:
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  1.2.查看包:
# yum list docker-ce.x86_64 --showduplicates | sort -r  1.3.安装docker
# yum -y install docker-ce-18.06.0.ce-3.el7  三个服务器都需要安装此版本的docker
  二、安装kubelet、kubeadm 和 kubectl
  kubelet 运行在 Cluster 所有节点上,负责启动 Pod 和容器。
  kubeadm 用于初始化 Cluster.
  2.1.添加阿里源,国外的你懂的:
# vim /etc/yum.repos.d/kubernetes.repo

name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0  2.2.安装kubelet kubeadm kubectl
# yuminstall -y kubelet kubeadm kubectl  启用kubelet:
# systemctl enable kubelet.service  关闭swap:
# swapoff -a  2.3.使用kubeadm创建cluster
  2.3.1.初始化master
kubeadm init --apiserver-advertise-address 192.168.2.120 --pod-network-cidr=10.244.0.0/16  参数说明:
--apiserver-advertise-address string
The IP address the API Server will advertise it's listening on. Specify '0.0.0.0' to use the address of the default network interface.
-pod-network-cidr string
Specify range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node.  报错:
# kubeadm init --apiserver-advertise-address 192.168.2.120 --pod-network-cidr=10.244.0.0/16
Using Kubernetes version: v1.13.2
Running pre-flight checks
Pulling images required for setting up a Kubernetes cluster
This might take a minute or two, depending on the speed of your internet connection
You can also perform this action in beforehand using 'kubeadm config images pull'
error execution phase preflight: Some fatal errors occurred:
      : failed to pull image k8s.gcr.io/kube-apiserver:v1.13.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
      : failed to pull image k8s.gcr.io/kube-controller-manager:v1.13.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
      : failed to pull image k8s.gcr.io/kube-scheduler:v1.13.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
      : failed to pull image k8s.gcr.io/kube-proxy:v1.13.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
      : failed to pull image k8s.gcr.io/pause:3.1: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
      : failed to pull image k8s.gcr.io/etcd:3.2.24: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
      : failed to pull image k8s.gcr.io/coredns:1.2.6: output: Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp 64.233.188.82:443: connect: connection timed out
, error: exit status 1
If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`  解决:
  docker.io仓库对google的容器做了镜像,可以通过下列命令下拉取相关镜像:
docker pull mirrorgooglecontainers/kube-apiserver:v1.13.2
docker pull mirrorgooglecontainers/kube-controller-manager:v1.13.2
docker pull mirrorgooglecontainers/kube-scheduler:v1.13.2
docker pull mirrorgooglecontainers/kube-proxy:v1.13.2
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.2.24
docker pull coredns/coredns:1.2.6  对镜像进行tag:
docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.2 k8s.gcr.io/kube-apiserver:v1.13.2
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.2 k8s.gcr.io/kube-controller-manager:v1.13.2
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.2 k8s.gcr.io/kube-scheduler:v1.13.2
docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.2 k8s.gcr.io/kube-proxy:v1.13.2
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24
docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6  再次初始化:
http://s1.运维网.com/images/20190117/1547715459591692.png
  2.4.配置kubectl
  2.4.1.在master上,切换到ckl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config  2.4.2.添加flannel网络
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml  2.5.配置node1在两个node上执行
  2.5.1.在node1上执行:
# kubeadm join 192.168.2.120:6443 --token cr4qie.4izx0ry4bmgzbxgg --discovery-token-ca-cert-hash sha256:3ac0c3aed126752cf0057559609a81d1608b8174dde20c2af559873894c80895http://s1.运维网.com/images/20190117/1547715471461157.png
  2.5.2.在node2上执行:
# kubeadm join 192.168.2.120:6443 --token cr4qie.4izx0ry4bmgzbxgg --discovery-token-ca-cert-hash sha256:3ac0c3aed126752cf0057559609a81d1608b8174dde20c2af559873894c80895http://s1.运维网.com/images/20190117/1547715481667724.png
  2.6.在master查看节点状态:
http://s1.运维网.com/images/20190117/1547715498562175.png
  添加命令补全:
# yum install -y bash-completion
# find / -name "bash_completion"
/usr/share/bash-completion/bash_completion
# source /usr/share/bash-completion/bash_completion
# source
页: [1]
查看完整版本: docker 实践(十三)ks8 安装部署