------------ ------------ restore content begins
First, the deployment of docker
- 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
- 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
- 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