kubernetes集群安装部署

kubernetes集群安装部署

前言:这次实验所使用的系统版本为:Centos 7.4,在其他版本这种方式未经测试,不知道有没有问题,可以尝试安装试试

一、kubernetes Master节点初始化

1、关闭防火墙

[root@k8s-master ~]指令方块指令# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive指令漫画 (dead)
Docsdockerfile: man:firewalld(1)

2、集群时间同步(NTP)

务器端配置

# Use public servers from the pool.ntp.org project.
# Please consdocker容器ider joining the pool (http://www.pool.ntp.org/join.html).
- 注释其他server
#server 0.cenfilecoin币今日价格tos.pool.指令助手ntp.org iburst
#server 1.centos.pool.ntp.org iburst
##server 2.centos.p指令英文ool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
serverfilecoin到底是不是骗局 127.0.0.1 //server指定lo网卡地址就可以了
fudge 127.0.0.1 startum 8

客户端

#restrict 192.168.1.0 mask 255.255.255.0 nomodify ndockerhubotrap
# Use publ用法错误的修改器ic servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
serdocker命令ver 192.docker安装部署168.0.21docker容器8 iburst

测试时间同步

[root@docker-node1 ~]# ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
============指令系统==================dockerfile构建mysql================================================
192.168.0.218   .INIT.          16 u   23   64    0    0.000    0.000   0.000

3、实现免密要登入

ssh-keygen
ssh-copy-id root@192.168.1.xx
ssh-copy-id root@192.168.1.xx
ssh-copy-id root@192.168.1.xx

4、设定主机名与host文件

# 分别dockers设定node与master的主机名
ho指令stnamectl set-hostname master
execfiles是什么意思中文翻译 bash
# 同步所有主机的hosdocker命令ts文件
v用法情况怎么写im /etc/hosts
192.168.0.3 master localhost
192.168.1.1用法情况怎么写82 node1  localhost
1用法的英文92.16docker安装部署8.1.218 node2  localhost

5、关闭swap

# swapoff -a
# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE M用法组词OUNTPOINT
vda    253:0    0  40G  0 disk
├─vda1 253:1    0   4G  0 part
└─vda2 253:2    0  36Gfile  0 part /
c指令英文at /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May指令方块指令 29 10:22:23 2019
#
# Accessible filesystems, by refedocker安装部署rence, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=cd57b66f-58d9-4a4c-8acd-f5b51fb0bfc7 /                       ext4    defaults        1 1
#UUID=c45fd23f-2d60-4474-9e8d-1edockerfile 命令32957docker常用命令3fb用法组词26 swap                    swap    defaults        0 0

6、配置阿里云yumfilenotfound怎么修复源,并安装 kubelet kubeadm kubectl dodocker是干什么的cker-ce

1、配置ku指令大全我的世界bernetes镜像源
cat <<EOF > /etc/yum.repos.d/kubernedocker容器tes.repo
[kubernetes]
name=dockerKubernetes
baseurl=https://mir用法语怎么说我爱你rors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabdockerfile编写led=1
gpdocker菜鸟教程gcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg ht用法语从容应对敌人盘问tps://mirrors.aliyun.com/kubdocker菜鸟教程ernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
~]# ~]# yum list kubelet --用法情况怎么写showduplicates | sort -r |gr用法情况怎么写ep 1.15.10-0
kube指令大全let.x86_64                       1dockerfile常用指令.15.10-指令系统0                       kubernetes
kubelet.x86_64                       1.15.10-0                       @kubernetes
~]# yum infilecoin到底是不是骗局stall -y  kubeadm-1.docker是干什么的15.指令大全10-0  kubelet-1.15.10-0
~]# systemctl enable kubelet && systemctl start kubelet
2dockerfile构建mysql、安装docker-ce
# step 1: 安装必要的dockers一些系统工具
sudo yum install -y yum-u指令系统tils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/dockerfiledocker-cdocker命令e.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
s用法情况怎么写udo yum -y install docker-ce
# Step 4: 开启Docker服指令方块指令务
sudo sys用法语怎么说我爱你temctl start docker  && system用法组词ctl status  docker

7、将kubeadm 默认init初始化master配置导出到一个yml配置文件,修改指令漫画镜像下载源和配置POD网段地址

# kubeadm  config print init-defaults >kubeadm-config.yml
配置信息如下
apiVersiofilecoin币今日价格n: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
- system:bootst用法用量rappers:kubeadm:defaultdockerfile构建mysql-node-token
tofilecoinken: abcdef.0123456789abcdef
ttl: 24fileh0m0s
usages:
- signing
- authentidockerfile文件cation
kind: InitConfiguration
#localAPIEndpoint:                          #注释
#  advertiseAddress: 1.2.3.4                #注释
#  bindPort: 6443                           #注释
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: k8s-master.novalocal
taints:
- effect: NoSchedule
key: node-role.kubernetes.dockerfile编写io/master
---
apiServer:
time用法用量outForControlPlane: 4mdockerfile 命令0s
apidocker是干什么的Version: kubeadm.k8s.io/vdocker是干什么的1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageReposdocker是干什么的itory: mirrorgooglecontainers   #修改默认的镜像下载源(k8s.gcr.io)
kind: ClusterCon指令漫画figuration
kubernetesVersion: v1.15.0
networking:
dnsDomain: cluster.local
sdockerfile怎么用erviceSubnet: 10.96.0.0/12
podSufiles是什么意思中文翻译bnet: 10.244.0.0/16                #添加pod网段不然一会安装flann组建会报错
scheduler: {}

8、初始化master节点,注意要指定 刚刚导出来的文件

[root@k8s-node01 ~]# kubeadm init --config kubeadm-config.yml
[init] Using Kubernetes version: v1.15.0
[preflight] Running pre-flight cdocker是干什么的hecks
[WARNING IsDockerSystemdCheck]: detecdockerfile编写ted "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow th用法组词e guide at https://kubernetes.io/docs/setup/cri/
[preflight] Pulling images required for setting up a Kubernetfiledes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform th指令宝贝is action in beforehdockerfile envand using 'kubeadm config imagfiles是什么意思中文翻译es pull'
[kubelet-start] Writing kubelet environdockerhubment file w指令英文ithdockers fladocker容器gs to file "/var/lib/kubelet/kubdockerfile enveadm-flagsfilenotfound怎么修复.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"docker面试题
[kubelet-stdocker面试题art] Actdockerfile常用指令ivating the kubelet service
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Generating "ca" certificatedockerhub and key
[certs] Generating "apiserver" certificate and key
[certs] apiser指令助手vfileviewproer serving c指令助手ert is signed for DNS names [k8s-node01 kubernetes kubernetes.defau指令lt kuberndocker是干什么的etes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.9指令英文6.0.1 192.168.0.97]
[certs] Generating指令宝贝 "apiserver-kubelet-client" certifdockerfile envicate and key
[certs] Generating "front-proxy-ca" certificate and key
[certs] Generating "front-proxy-client" certificate and key
[certs] Generating "etcd/ca" certificate and keydockerfile怎么用
[certs]用法用量 Generdockerfile常用指令ating "etcd/server" certificate and key
[certs] etcd/server serving cfiles是什么意思中文翻译ert is signed f用法的英文or DNSdockerfile 命令 namesdockerfile编写 [k8s-node01 local用法的英文host] and IPs [192.168.0.97 127.0.0.1 ::1]
[ce用法用量缩写rts] Generating "etcdfilecoin/peer" cert用法说明英语ificate and key
[cert指令助手s] etcd/peer serving cert is signed for DNS names [k8s-node01 localhost] and IPs [192.168.0.97 127.0.0.1 ::1]
[certs] Generating "etcd/healthcheck-client" certificate and key
[certs] Generating "apiserver-etcd-client" certificate and key
[certs] Generating "sa" key and public key
[kfiledubeconfidockerfile的作用g] Using kubeconfig fold用法的英文er "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubel指令助手下载et.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig filefilecoin币今日价格
[kubec指令系统onfig] Writing "scheduler.conf" kubeconfig file
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[contrdockerfile常用指令ol指令方块指令-pladocker命令ne] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifesfileassistor是什么软件t for "kube-controller-manager"
[cofilenotfound怎么修复ntrol-plane] Creating static Pod manifest for "kube-schedudockerfileler"
[edockerfile文件tcd] Creating static Pod manifedockerhubst fordockerfile怎么用 local et指令标志cd in "/etc/kubernetes/manifests"
[wait-control-plane] Wafilediting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can用法说明英语 take up to 4m0s
[apiclient] All control plane components are healtfilecoinhy af指令ter 22.501771 seconds
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namesdocker命令pace
[kubelet] Creating a ConfigMap "kubelet-co用法用量nfig-1.15" in namespace kube-system with the configuration for the ku指令大全我的世界beledocker和虚拟机的区别ts in the cluster
[upload-certs] Skipping phase. Please see --u用法用量pload-certs
[mark-controdockerl-plandockerfile 命令e] Marking the node k8sdocker安装部署-no指令大全de01 as control-plane bydockerfile位置 adding the label "node-role.kubernetes.指令英文io/masterdocker常用命令=''"
[mark-control-plane] Marking the node k8s-node01 as control-plane by adding the taints [node-role.kube用法错误的修改器rnetes.io/master:NoSchedule]
[bootfilecoin币今日价格strap-token] Using token: abcdef.0123456789abcdef
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMapfilecoin, RBAC Roles
[b用法莫替丁治什么病ootstrap-token] configured RBAC rules tfilecoino allow Node Bootstrap tokens to post CSRs in orddocker菜鸟教程er for nodes to get long term certificate credentialsdocker菜鸟教程
[bootstrap-token] configured RBAC rules to allow the csrapproverdockerfile env controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-tdockerfile怎么用okedocker常用命令n] configured RBAC rules to allow cerdockerfile构建mysqltificate rotation for all node client certificates in the cluster
[bootstrdockerfile的作用ap-token] Creating the "cluster用法组词-infodockerfile编写" ConfigMap in the "kube-public" namespace
[addons] Ap用法错误的修改器plied essential addon: CoreDNSdockers
[addons] Applied essential addon: kube-proxy
Your Kubernete指令助手s control-plane has initializedfilecoin successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOdocker安装部署ME/.kube/confidocker常用命令g
You should now deploy a pod network to the cluster.
Run "kudocker菜鸟教程bectl apply -f [podnetwork]fileassistor是什么软件.yaml" with one of the options listed at:
https://kubernetes指令大全.io/docs/concepts/clustefiles是什么意思中文翻译r-administration/addons/filecoin
Then you cadockerfile的作用n jo用法in any number of worker nodes by running the following on each as root:
"#下面是node节点加入是所需要执行的命令,记住一定要保存好"
kubeadm join 192.168.用法情况怎么写0.97:6443 --token abcdef.0123456789abcdef 
--discovery-token-ca-cert-hash sha256:3c031e0510e86df6dockerfile编写6b34f7459e4319db9652aaf6d3b47823b501f5ef5af1a99bdocker是干什么的 

9、配置API所需的配置文件

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admidockerfile envn.conf $HOME/.kube/config
sudo chown $(id -u):$(id -dockerfile的作用g) $HOME/.kube/config

10、安装集群网络组件flannel

[root@k8s-node01 ~]# kubectl app用法莫替丁治什么病ly -f https://raw.g指令漫画ithubusercontent.com/file是什么意思翻译coreos/flannel/62e44c867a2846fefb68bdocker命令d5f178daf4da3095ccdockerfile编写b/Documentationdocker命令/kube-flannel.yml
回显信息
podsec用法的英文uritypolicy.extensions/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusdockerfile文件terrolebindi指令大全ng.rfilebac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.extensiondocker和虚拟机的区别s/kube-fla用法的英文nnel-ds-fileamd64 created
daemonset.extensions/kubdocker面试题e-flannel-ds-arm64 created
daemonsetdocker容器.extensions/kube-flannel-ds-arm created
daemondocker是干什么的set.extensions/kfileube-flannel-ds-ppc64le created
daemonset.extensions/kube-flannel-ds-s390x created
或安装cannl
]# kubectl apply -f https://docs.projectcalfileviewproico.org/v3.manifests/canal.yaml
configmap/canal-config created
customresourcedefinition.apiextensions.k8s.io/felixconfigur指令系统ations.crd.projectcalicodocker和虚拟机的区别.org created
customresourceddockerfile envefindockerfile位置ition.apfileviewproiextensions.k8s.io/bgpconfigurations.crd.projectcalico指令.org created指令助手
customresourcedefinitiodockerfile文件n.apiextensions.k8s.io/ippools.crd.projecdocker菜鸟教程tcalico.org created
customresourcedefinition.apiextensions.k8filenotfound怎么修复s.io/hostendpoints.crd.projectcalico.org created
customresourcedefin用法情况怎么写ition.apiextensions.k8s.io/clusdockerterinformations.crd.p指令漫画rojectcalico.org created
customresourcedefinition.apiextensions.docker菜鸟教程k8s.io/globalnetwork指令系统policies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalne用法语怎么说我爱你tworksets.crd.pdockersrojectcalicofileviewpro.org created
customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalicdockerhubo.org created
cusfile是什么意思翻译tomresourced用法用量缩写efinition.apiextensions.k8s.io/networksets.crd.project指令宝贝calico.org created
clusterro用法组词le.rbac.authorization.k8s.io/calico-node created
cdocker是干什么的lusterrole.rbac.authorizdockerfile怎么用ation.k8s.io/flannel created
clust用法用量缩写errolebinding.rbac.authorization用法用量.k8s.io/canal-flanfilenotfound怎么修复nel created
clusterrolebinding.rbac.authorization.k8s.io/canal-calico created
daemonset.apps/canal created
serviceaccount/canadockerfilel creafileted

11、查看集群信息

[root@k8s-node01 ~]#用法语怎么说我爱你 kub指令ectfilel  get node
NAME         STATUS   ROLES    AGE   VERS用法用量ION
k8s-node01   Ready    master   10m   v1.15.0
[root@k8s-node01 ~]# kubectl  get pod -n kube用法错误的修改器-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-57c7898648用法用量缩写-5用法用量gtdockerfile详解qz             1/1     Running   0          10m
coredns-57c7898648-qthrx             1/1     Running   0          10m
etcd-k8s-node指令标志01                      1/1     Running   0          10m
kube-apiserver-k8s-node01            1/1     Running   0          9mdockerfile详解55s
kube-controller-manager-k8s-node01   1/1     Running   0          10m
kube用法的英文-flannel-ds-amdockerfile编写d64-pq6fv          1/1     Running   0          3m54s
kube-proxy-lqlkv                     1/1     Running   0          10m
kube-scheduler-k8s-node01            1/1     Running   0          9m59s

12、上面dockerfile 命令有一个WARNING解决方法

1、[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroufilep driver. The recommended driver is "systemd". Please fo指令llow the guide at https:/filenotfound怎么修复/kubernetes.io/docs/setup/cri/
2、修改或创建/etc/docker/daemon.json,加入dockerfile怎么用下面的内容:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
3、重启docker:
systemctl restart指令 docker
systemctl status docker
4、重置docker面试题集群
kubectl reset
5、重新初始化集群
kubeadm init --confile是什么意思翻译fig kubea指令漫画d指令方块指令m-config.yml
"没有出现刚才的warnig表示已经解决"

二、node 节点加入集群步骤

1、yum源配置和master一样,需要安指令助手装的包如下:docker,kubeadm,kubetel

2、关闭防火墙,selinux、swap

1、配置yum源

[ro指令大全ot@k8s-master ~]# ls  /etc/yufilecoinm.repos.ddocker/
CentOS7-Base.repo  docker-ce.repo  kubeadm-config.yml  kubernetes.指令大全我的世界repo
[root@k8s-master ~]# scp /etc/filedyum.repos.d/* k8s-node01:/etc/yum.repos.d/
#node01:更新yum源
[root@k8s-node01 ~]# yum makecache 

2、安装所需软件

#1、安用法语从容应对敌人盘问装kubernetes相关组件
yum install kubeadm kubelet
#2指令标志、安装docker
yum list d用法用量ocker-ce --showdupldocker和虚拟机的区别icates | sort -r #列出docker版本
"回显信息如下"
* updates: mirror.centos.org
Loading mirror speeds from cached hostfile
L指令标志oaded plugins: fastestmirror, langpacks
Installed Packages
* extras: mirror.centos.org
docker-ce.x86_64            3:18.09.8-3.eldockers7                    docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                    @dodockerfile怎么用cker-ce-stable
docker-ce.x86_64            3:18.09.7-3.edocker常用命令l7                    docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                    docker-ce-stable
..指令大全我的世界....
#3、安装docker
yum install docker

3、启动服务

#启动dockfileser,并设置成开机自启
systemctl start docker
systemctl enable docker   #这一步不做的话加入集群会有告警,dockerfile详解但是并不会影响
#将kubetel设置成开机自启即可,files是什么意思中文翻译切记不要启动服务!
systemctl enbale kubetel  #这一步不做的话加入指令助手集群会有告警,但是并不会影用法语从容应对敌人盘问

4、关闭swap

# swapoff -a
# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  40G  0 disk
├─vda1 253:1    0   4G  0 part
└─vda2 253:2    0  36G  0 part /
cat /etc/fstab
#
# /etc/fstabdocker常用命令
# Created by anaconda on Wed May 29 10:22:23 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mountdocker和虚拟机的区别(8) and/or blkid(8) for more info
#
UUID=cd57b66f-58d9-4a4c-8acd-f5b51fb用法语怎么说我爱你0bfc7 /                       ext4    defaults        1 1
#UUID=c45fd23f-2d60-dockerfile详解447dockers4-9e8d-1e329573fb26 swap                    swap    defaults        0 0

5、加入集群

kubeadm join 192.168.fileassistor是什么软件0.97:6443 --token abcdef.0123456789abcdef   --discovery-token-ca-cert-hash sha256:3c031e0510e86df6指令标志6b34f7459e4319db9652aaf6d3b47dockerfile的作用823b501f5ef5af1a99b用法错误的修改器
"回显信息如下即表示加入成功,只需要等待镜像下载完,而后自动启动容dockerfile详解器即可"
[preflight] Running pre-flight checks
[用法错误的修改器preflight] Reading codocker面试题nfiguration from the cluster...
[preflight] F用法错误的修改器YI: Yo指令系统u can look at this confi指令g file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for用法用量 the kubelet from the "kubelet-dockerfile 命令config-1.15" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubedocker常用命令let configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubeletdockerfile常用指令 environment file with f指令宝贝lags to file "/var/lib/kubelefile是什么意思翻译t/kubeadm-flags.env"
[kubelet-start] Acfilecoin到底是不是骗局tivadockersting the kubelet service
[kubelet-start] Wai指令宝贝ting for the kubeledockerfile位置t to perform the TLS Bootstrap...
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the control-plandockerfile怎么用e to see this node join the cluster.

6、最后master上查看集群信息

[root指令大全@k8s-master ~]# kubectdockerfile怎么用l get node用法说明英语s
NAME         STATUS   ROLES    AGE     VERSION
k8s-master   Ready    master   8m3dockerfile怎么用6s   v1.15.0
k8s-node02   Ready    <none>   106s    v1.15.1