1. Arquitetura do sistema Pod Kubernetes:
2. Lógica central:
3. Base do modelo de rede
4. Usuários K8s:
5. modo de operação k8s:
6 、 beadm
7. fluxo de trabalho kubeadm
Implantação de ambiente de demonstração:
[root @ node01 ~] # cat / etc / hosts
192.168.100.40 node04.magedu.com node04 node04
192.168.100.30 node03.magedu.com node03 node03
192.168.100.20 node02.magedu.com node02 node02
192.168.100.10 node01.magedu.com node01 node01
Verificação de ambiente:
[root @ node01 ~] #
1. systemctl stop firewalld systemctl disable firewalld
2. UUID = fa47bfb8-28b6-485a-add4-3c8464933f39 swap #Close partition
3, ntpdate time1.ali swapyun.com
docker 安装 :
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel .repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/ linux / centos / docker-ce.repo
yum install docker-ce -y
配置 : daemon.json # cat /etc/docker/daemon.json
{
"registry-mirrors": [" https: //9916w1ow.mirror.aliyuncs. com "],
" exec-opts ": [" native.cgroupdriver = systemd "],
" log-driver ":" json-file ",
" log-opts ": {
" max-size ":" 100m "
},
"driver de armazenamento": "overlay2"
}
systemctl daemon-reload
systemctl restart docker
systemctl start docker
systemctl enable docker
informações do docker #View driver
Driver de registro:
driver Cgroup json-file : systemd
Imagem Kubernetes
https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.3e221b115fDyMd
cat << EOF> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name = Kubernetes
baseurl = https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled = 1
gpgcheck = 1
repo_gpgcheck = 1
gpgkey = https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key .gpg
EOF
setenforce 0 #selinux 关闭
swap 分区:
swapoff -a
yum install -y kubelet kubeadm kubectl
systemctl ativar kubelet && systemctl start kubelet
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Instalado:
kubeadm.x86_64 0: 1.20.2-0 kubectl.x86_64 0: 1.20.2 -0 kubelet.x86_64 0: 1.20.2-0
Dependência instalada:
conntrack-tools.x86_64 0: 1.4.4-7.el7 cri-tools.x86_64 0: 1.13.0-0
kubernetes-cni.x86_64 0: 0.8.7-0 libnetfilter_cthelper.x86_64 0: 1.0.0- 11.el7
libnetfilter_cttimeout.x86_64 0: 1.0.0-7.el7 libnetfilter_queue.x86_64 0: 1.0.2-2.el7_2
socat.x86_64 0: 1.7.3.2-2.el7
<<<<<<<<<<<< <<<<<<<<<<<<<
<<<<<<<<
modprobe br_netfilter ; echo 1> / proc / sys / net / bridge / bridge-nf-call-iptables
kubeadm init #Inicializar o avião:
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version = v1.20.2 --pod-network-cidr = 10.244.0.0 / 16 --service-cidr = 10.96.0.0 / 12 --ignore -preflight-errors = Trocar
<<<<<<<<<<<
集群 高可用 高可用 高可用 :
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version = v1.20.2 --control-plane-endpoint node01 --apiserver-advertise -address 192.168.100.1 --pod-network-cidr = 10.244.0.0 / 16 --service-cidr = 10.96.0.0 / 12 --ignore-preflight-errors = Swap --token-ttl 0
<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mkdir -p $ HOME / .kube
sudo cp - i /etc/kubernetes/admin.conf $ HOME / .kube / config
sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config
Como alternativa, se você for o usuário root, pode executar:
exportar KUBECONFIG = / etc / kubernetes / admin.conf
Agora você deve implantar uma rede pod para o cluster.
Execute "kubectl apply -f [podnetwork] .yaml" com uma das opções listadas em:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Em seguida, você pode unir qualquer número de nós de trabalho executando o seguinte em cada um como raiz:
kubeadm join 192.168.10.110:6443 --token peuw3m.5fiyzsdokf0cfzup \
--discovery-token-ca-cert-hash sha256: 82873b6ecea8107b4ab <<<<<<< 888888
<c < f791869a4aee9d6bf2dcaa9
##########
Crie um usuário normal:
useradd ilinux
echo'centos '| passwd --stdin ilinux
# echo'ilinux ALL = (ALL) NOPASSWD: ALL'> /etc/sudoers.d/inlinux
cat /etc/sudoers.d/inlinux
plug-in de rede de flanela de get nodes :
https://github.com/coreos/flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
安装插件出现的问题:
[ilinux@jenkins-server~]$kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
A conexão com o servidor raw.githubusercontent.com foi recusada - você especificou o host ou a porta correta?
Resolva o problema de que raw.githubusercontent.com do GitHub não consegue se conectar
em https://site.ip138.com/raw.Githubusercontent.com/
Digite raw.githubusercontent.com para consultar o endereço IP
arquivo vim / etc / hosts:
151.101.88.133 raw.githubusercontent.com
验证 flannel pod 插件 ;
kubectl get pods -n kube-system
NOME READY STATUS RESTARTS AGE
coredns-7f89b7bc75-5fzrg 1/1 Executando 0 50m
coredns-7f89b7bc75-6d4sj 1/1 Executando 0 50m
kube-controller-manager-node03.maged. com 1/1 Executando 0 50m
kube-flannel-ds-48qrx 1/1 Executando 0 4m50s
kube-proxy-vnftj 1/1 Executando 0 50m
Junte-se ao nó do nó:
kubeadm join 192.168.10.110:6443 --token peuw3m.5fiyzsdokf0cfzup \
--discovery-token-ca-cert-hash sha256: 82873b6ecea8107b4ab2d9b49fc5f791869a4aee9d6bf210dcaa9b87878
k8s cluster verification
kubectl get nodes
Se o serviço é iniciado automaticamente após a inicialização:
[root @ node03 ~] # systemctl is-enabled docker; systemctl is-enabled kubelet; systemctl is-enabled docker
Exercício de pod: