2020 March 16 the first day, today plans to study: K8S Kubeadm perfect deployment 1.14

------------ ------------ restore content begins

First, the deployment of docker

  1. 1.   deployment docker container virtualization platform and configuration docker environment

Download the new yum configuration file

wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@mater ~]# cd /etc/yum.repos.d

[root@mater yum.repos.d]# ll

 

  1. 2.   Installation of environment-dependent docker

[root@mater yum.repos.d]# yum install -y yum-utils device-mapper-persistent-data lvm2

[root@mater yum.repos.d]# yum -y install device-mapper-persistent-data lvm2

  1. 3.   Configure docker domestic yum source

[root@mater yum.repos.d]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

[root@mater yum.repos.d]#ll

 

 

4 . Installation and start docker-ce arranged to boot from the start while

 

[root@mater ~]# yum install docker-ce docker-ce-cli containerd.io -y

[root@mater ~]# systemctl start docker

[root@mater ~]# systemctl enable docker

 

5 . View docker version information

[root@mater ~]# docker version

 

 

[root@mater ~]# docker info

 

 

 

 

6. The use of docker aliyun domestic accelerator mirror, to enhance the speed of pull;

https://cr.console.aliyun.com/

 

 

7. create a profile deamon.json

[root@mater ~]# vim /etc/docker/daemon.json

 

{

"registry-mirrors":["https://8w3y99jm.mirror.aliyuncs.com"]

}

[root@mater ~]# systemctl daemon-reload

[root@mater ~]# systemctl restart docker

 

 

 

8. download image docker

[root@mater ~]# docker pull centos

[root@mater ~]# docker images

 

 

9. open network forwarding

[root@mater ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward =1

 

 

10. Turn off the firewall and restart docker

[root@mater ~]# systemctl stop firewalld

Failed to stop firewall.service: Unit firewall.service not loaded.

[root@mater ~]# systemctl restart docker

 

11. Run docker:

 

[root@mater ~]# docker run -it centos:latest bash

[root@55faa3007fa6 /]# cat /etc/redhat-release

CentOS Linux release 8.0.1905 (Core)

 

12. The installation of the docker container HTTPD

[root@mater ~]# docker run -it centos:latest /bin/bash

[root@8a1643dcfea5 /]# yum -y install httpd

Method a. Docker container made of HTTP containing

[root@mater ~]# docker ps -a

 

[root@mater ~]# docker commit 1e7039d965d5 centos:apache

 

 

Method Two Create a docker build through the http web service based centos mirror

[root@mater ~]# mkdir /docker-build

[root@mater docker-build]# touch Dockerfile

Edit Dockerfile file;

 

Edit the file start.sh

 

Docker-build file in the directory

 

Production docker Mirror

[root@mater docker-build]# docker build -t centos:httpd ./

 

Docker image and make a good start port forwarding

[root@mater docker-build]# docker run -d -p 80:80 centos:httpd

 

Second, configure basic network and firewall close

1 , configure hostname Host Name:

[root@m1 ~]# vim /etc/hostname

# Modify the host name of the method:

[root@m1 ~]#hostnamectl set-hostname m1

# Set the host, so that you can access each other between all nodes by hostname

$ vi /etc/hosts

# <node-ip> <node-hostname>

# Configure hosts allow access to each other between all nodes by hostname

[root@m1 ~]# vim /etc/hosts

192.168.23.10 m1

192.168.23.11 m2

192.168.23.12 m3

2 , the installation dependencies

[root@m1 ~]# yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

 

3 , turn off the firewall, swap, reset iptables

@ Turn off the firewall

[root@m1 ~]# systemctl stop firewalld && systemctl disable firewalld

@ Reset iptables

[root@m1 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

@ Closed swap

[root@m1 ~]# swapoff -a

[root@m1 ~]# sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

@ Close selinux

[root@m1 ~]# setenforce 0

[root@m1 ~]# cd /etc/selinux

[root@m1 selinux]# vim config

SELINUX=Permissive

 

 

@ Close dnsmasq (Doing so may result docker container can not resolve domain)

[root@m1 ~]# systemctl stop dnsmasq && systemctl disable dnsmasq

Third, the other server configuration-free dense Login

[root@m1 ~]# ssh-keygen -t rsa -f y

Configure the password-free log in other nodes

[root@m1 ~]# for i in m1 m2 m3;do ssh-copy-id -i .ssh/id_rsa.pub $i;done

 

 

Fourth, m1 m2 m3 were doing snapshots

 

Fifth, the download version k8s 1.14

1 , system parameters

# Making Profile

[root@m1 ~]# cat > /etc/sysctl.d/kubernetes.conf <<EOF

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

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

net.ipv4.ip_forward=1

vm.swappiness=0

vm.overcommit_memory=1

vm.panic_on_oom=0

fs.inotify.max_user_watches=89100

EOF

# File to take effect

[root@m1 ~]#sysctl -p /etc/sysctl.d/kubernetes.conf

2 Installation

# Configure yum source (mirrors.aliyun.com)

[root@m1 ~]#cat <<EOF > /etc/yum.repos.d/k8s.repo

[k8s]

name = Kubernetes

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

enabled=1

gpgcheck=0

EOF

 

# Installation tool

# Find the version number to be installed

[root@m1 ~]# yum list kubeadm --showduplicates | sort -r

 

# Install the specified version (here is 1.14.0)

[root@m1 ~]# yum install -y kubeadm-1.14.0-0 kubelet-1.14.0-0 kubectl-1.14.0-0 --disableexcludes=kubernetes

 

 

[root@m1 ~]#yum install -y kubeadm-1.14.9-0 kubelet-1.14.9-0 kubectl-1.14.9-0 --disableexcludes=kubernetes

 

# Set cgroupdriver kubelet of (kubelet of cgroupdriver default systemd, if the above is not set exec-opts docker is systemd, here you need to kubelet set to cgroupfs)

 

# Start kubelet

[root@m1 ~]#systemctl enable kubelet && systemctl start kubelet

 

3 begin deployment

K8S v1.14.9 version to be deployed IMAGES

k8s.gcr.io/kube-apiserver:v1.14.9

k8s.gcr.io/kube-controller-manager:v1.14.9

k8s.gcr.io/kube-scheduler:v1.14.9

k8s.gcr.io/kube-proxy:v1.14.9

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.3.10

k8s.gcr.io/coredns:1.3.1

 

Make a good image download .sh file

#!/bin/bash
KUBE_VERSION=v1.14.9
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.10
DNS_VERSION=1.3.1
username=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy-amd64:${KUBE_VERSION}
kube-scheduler-amd64:${KUBE_VERSION}
kube-controller-manager-amd64:${KUBE_VERSION}
kube-apiserver-amd64:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd-amd64:${ETCD_VERSION}
coredns:${DNS_VERSION}
    )

for image in ${images[@]}
do
    docker pull ${username}/${image}
    docker tag ${username}/${image} k8s.gcr.io/${image}
    #docker tag ${username}/${image} gcr.io/google_containers/${image}
    docker rmi ${username}/${image}
done

 

imageRepository: k8s.gcr.io # mirrored warehouse address in the country, it can be modified to gcr.azk8s.cn/google_containers

[root@m1 ~]# kubeadm config images pull --config=init-config.yaml

 

# kubeadm config print init-defaults > init.default.yaml

# vim init-config.yaml

# kubeadm images list

Available Commands:

  init-defaults Print default init configuration, that can be used for 'kubeadm init'

  join-defaults Print default join configuration, that can be used for 'kubeadm join'

 

join-defaults file:

apiVersion: kubeadm.k8s.io/v1beta1

caCertPath: /etc/kubernetes/pki/ca.crt

discovery:

  bootstrapToken:

    apiServerEndpoint: kube-apiserver: 6443

    token: abcdef.0123456789abcdef

    unsafeSkipCAVerification: true

  timeout: 5m0s

  tlsBootstrapToken: abcdef.0123456789abcdef

kind: JoinConfiguration

nodeRegistration:

  criSocket: /var/run/dockershim.sock

  name: m2

 

The edited join-confing.yaml file:

apiVersion: kubeadm.k8s.io/v1beta1

kind: JoinConfiguration

discovery:

  bootstrapToken:

    apiServerEndpoint: 192.168.23.10:6443

    token: abcdef.0123456789abcdef

    unsafeSkipCAVerification: true

  tlsBootstrapToken: abcdef.0123456789abcdef

nodeRegistration:

  name: m2

 

Installation Node node

[root@m2 ~]# kubeadm join --config=jion-config.yaml

End ------------ ------------ restore content

Guess you like

Origin www.cnblogs.com/yyuuee/p/12505363.html