KubernetesDocker容器

搭建高可用Kubernetes集群之kubernetes集群搭建

2019-05-16  本文已影响6人  olaH


在搭建kubernetes集群之前,请参考我的文章搭建高可用Kubernetes集群之etcd集群搭建篇(一)完成各节点配置

Docker

每一个kubernetes集群节点都需要安装

image.png

systemctl daemon-reload
systemctl start docker.service
systemctl enable docker.service

因为DockerHub下载镜像的速度较缓慢,所以我这里使用我自己的阿里云加速镜像加速服务。
vim /etc/docker/daemon.json

image.png

systemctl restart docker.service

安装kubeadm kubelet kubectl

image.png
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

systemctl enable kubelet.service

配置初始化文件

apiVersion: kubeadm.k8s.io/v1alpha2
kind: MasterConfiguration
kubernetesVersion: v1.12.4
tokenTTL: 0
api:
  advertiseAddress: 192.168.88.97
  bindPort: 6443
  controlPlaneEndpoint: "192.168.88.201:6443"
apiServerCertSANs:   #每一个需要去访问apiserver的ip
- master1
- master2
- master3
- lb1
- lb2
- lb3
- gfs0
- gfs1
- gfs2
- 192.168.88.94
- 192.168.88.95
- 192.168.88.96
- 192.168.88.97
- 192.168.88.98
- 192.168.88.99
- 127.0.0.1
- 192.168.88.200
- 192.168.88.201 #vip
- 192.168.88.130
- 192.168.88.131
- 192.168.88.132
etcd:
  external:
    endpoints:
    - "https://192.168.88.90:2379"
    - "https://192.168.88.92:2379"
    - "https://192.168.88.93:2379"
    caFile: /etc/kubernetes/pki/etcd/etcd-ca.pem
    certFile: /etc/kubernetes/pki/etcd/etcd.pem
    keyFile: /etc/kubernetes/pki/etcd/etcd-key.pem
imageRepository: registry.cn-hangzhou.aliyuncs.com/csdc
kubeProxy:
  config:
    mode: "ipvs"
    ipvs:
      ExcludeCIDRs: null
      minSyncPeriod: 0s
      scheduler: ""
      syncPeriod: 30s
kubeletConfiguration:
  baseConfig:
    cgroupDriver: cgroupfs
    clusterDNS:
    - 10.96.0.10
    clusterDomain: cluster.local
    failSwapOn: false
    resolvConf: /etc/resolv.conf
    staticPodPath: /etc/kubernetes/manifests
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
apiVersion: kubeadm.k8s.io/v1alpha2
kind: MasterConfiguration
kubernetesVersion: v1.12.4
tokenTTL: 0
api:
  advertiseAddress: 192.168.88.98
  bindPort: 6443
  controlPlaneEndpoint: "192.168.88.201:6443"
apiServerCertSANs:   #每一个需要去访问apiserver的ip
- master1
- master2
- master3
- lb1
- lb2
- lb3
- gfs0
- gfs1
- gfs2
- 192.168.88.94
- 192.168.88.95
- 192.168.88.96
- 192.168.88.97
- 192.168.88.98
- 192.168.88.99
- 127.0.0.1
- 192.168.88.200
- 192.168.88.201 #vip
- 192.168.88.130
- 192.168.88.131
- 192.168.88.132
etcd:
  external:
    endpoints:
    - "https://192.168.88.90:2379"
    - "https://192.168.88.92:2379"
    - "https://192.168.88.93:2379"
    caFile: /etc/kubernetes/pki/etcd/etcd-ca.pem
    certFile: /etc/kubernetes/pki/etcd/etcd.pem
    keyFile: /etc/kubernetes/pki/etcd/etcd-key.pem
imageRepository: registry.cn-hangzhou.aliyuncs.com/csdc
kubeProxy:
  config:
    mode: "ipvs"
    ipvs:
      ExcludeCIDRs: null
      minSyncPeriod: 0s
      scheduler: ""
      syncPeriod: 30s
kubeletConfiguration:
  baseConfig:
    cgroupDriver: cgroupfs
    clusterDNS:
    - 10.96.0.10
    clusterDomain: cluster.local
    failSwapOn: false
    resolvConf: /etc/resolv.conf
    staticPodPath: /etc/kubernetes/manifests
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
apiVersion: kubeadm.k8s.io/v1alpha2                     
kind: MasterConfiguration                               
kubernetesVersion: v1.12.4                              
tokenTTL: 0                                             
api:                                                    
  advertiseAddress: 192.168.88.99                       
  bindPort: 6443                                        
  controlPlaneEndpoint: "192.168.88.201:6443"           
apiServerCertSANs:   #每一个需要去访问apiserver的ip              
- master1                                               
- master2                                               
- master3                                               
- lb1                                                   
- lb2                                                   
- lb3                                                   
- gfs0                                                  
- gfs1                                                  
- gfs2                                                  
- 192.168.88.94                                         
- 192.168.88.95                                         
- 192.168.88.96                                         
- 192.168.88.97                                         
- 192.168.88.98                                         
- 192.168.88.99                                         
- 127.0.0.1                                             
- 192.168.88.200                                        
- 192.168.88.201 #vip                                   
- 192.168.88.130                                        
- 192.168.88.131                                        
- 192.168.88.132                                        
etcd:                                                   
  external:                                             
    endpoints:                                          
    - "https://192.168.88.90:2379"                      
    - "https://192.168.88.92:2379"                      
    - "https://192.168.88.93:2379"                      
    caFile: /etc/kubernetes/pki/etcd/etcd-ca.pem        
    certFile: /etc/kubernetes/pki/etcd/etcd.pem         
    keyFile: /etc/kubernetes/pki/etcd/etcd-key.pem      
imageRepository: registry.cn-hangzhou.aliyuncs.com/csdc 
kubeProxy:                                              
  config:                                               
    mode: "ipvs"                                        
    ipvs:                                               
      ExcludeCIDRs: null                                
      minSyncPeriod: 0s                                 
      scheduler: ""                                     
      syncPeriod: 30s                                   
kubeletConfiguration:                                   
  baseConfig:                                           
    cgroupDriver: cgroupfs                              
    clusterDNS:                                         
    - 10.96.0.10                                        
    clusterDomain: cluster.local                        
    failSwapOn: false                                   
    resolvConf: /etc/resolv.conf                        
    staticPodPath: /etc/kubernetes/manifests            
networking:                                             
  dnsDomain: cluster.local                              
  podSubnet: 10.244.0.0/16                              
  serviceSubnet: 10.96.0.0/12                           

需要把之前生成的etcd密钥放在master1节点的这个文件下 /etc/kubernetes/pki/etcd/
上述的镜像仓库地址是我的阿里云镜像仓库,上面已经有需要的镜像了,可以直接使用来下载。

拉取镜像

kubeadm config images pull --config kubeadm-config.yaml
并把pause镜像的名称改回原来的名称,如下
docker tag registry.cn-hangzhou.aliyuncs.com/csdc /pause:3.1 k8s.gcr.io/pause:3.1

初始化集群

做完以上操作之后,就可执行如下命令进行初始化

image.png

按照提示的操作执行命令:

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

把kubernetes生成的密钥文件复制到各个master节点,如下:
scp -r /etc/kubernetes/pki root@master2:/etc/kubernetes/
scp -r /etc/kubernetes/pki root@master3:/etc/kubernetes/
补全操作:

cat << EOF > /etc/profile.d/kubernetes.sh 
source <(kubectl completion bash)
EOF
source /etc/profile.d/kubernetes.sh

按照提示的操作执行命令:

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

补全操作:

cat << EOF > /etc/profile.d/kubernetes.sh 
source <(kubectl completion bash)
EOF
source /etc/profile.d/kubernetes.sh

按照提示的操作执行命令:

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

补全操作:

cat << EOF > /etc/profile.d/kubernetes.sh 
source <(kubectl completion bash)
EOF
source /etc/profile.d/kubernetes.sh
image.png

安装网络插件

从上图可以看出各个节点的状态还是未准备的状态,这是因为没有安装网络插件

image.png

至此,Kubernetes的一些基本组件全部安装完成,如果你喜欢,请不要吝啬你的赞。如果有任何疑问,请直接评论或者私信我。

上一篇 下一篇

猜你喜欢

热点阅读