k8s的部署

Kubernetes简介

Kubernetes的好处:
隐藏资源管理和错误处理,用户仅需要关注应用的开发。

服务高可用、高可靠。

可将负载运行在由成千上万的机器联合而成的集群中。

在这里插入图片描述

kubernetes设计架构

etcd:保存了整个集群的状态

apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制

controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上

kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理

Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)

kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡

!!除了核心组件,还有一些推荐的Add-ons:
kube-dns:负责为整个集群提供DNS服务
Ingress Controller:为服务提供外网入口
Heapster:提供资源监控
Dashboard:提供GUI
Federation:提供跨可用区的集群
Fluentd-elasticsearch:提供集群日志采集、存储与查询

分层!:

核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境

应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)

管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)

接口层:kubectl命令行工具、客户端SDK以及集群联邦

生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴

Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等

Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等

Kubernetes部署(4台虚拟机,其中一台完成过docker仓库实验)

	额!!!  强调一下   其余三台虚拟机的内存必须在1.8G以上。注意设置

1、关闭节点的selinux和iptables防火墙

2、所有节点部署docker引擎

将之前实验的虚拟机的yum源拷贝过去,并且写上解析(写装过docker的解析)

[root@server8 yum.repos.d]# scp docker.repo server1:/etc/yum.repos.d/

[root@server1 ~]# yum install -y docker-ce 
[root@server1 ~]# systemctl enable --now docker.service 

[root@server1 ~]# vim /etc/sysctl.d/docker.conf
[root@server1 ~]# cat /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

[root@server1 ~]# sysctl --system
[root@server1 ~]# docker info			#检查
	Live Restore Enabled: false
###			另外两台虚拟机同理

3、写上解析(写此实验之前装过docker的解析),并且编写/etc/docker/daemon.json

[root@server1 ~]# vim /etc/hosts
172.25.111.8    server8 reg.westos.org

[root@server1 ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://reg.westos.org"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
[root@server1 ~]# systemctl restart docker.service 
###		另外两台虚拟机同理

检查   docker info 

在这里插入图片描述
在这里插入图片描述

4、禁用swap分区:
[root@server1 ~]# swapoff -a

[root@server1 ~]# vim /etc/fstab

在这里插入图片描述
###另外两台虚拟机同上

5、安装部署软件kubeadm
[root@server1 docker]# vim /etc/yum.repos.d/k8s.repo
[root@server1 docker]# cat /etc/yum.repos.d/k8s.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
[root@server1 docker]# yum install -y kubelet kubeadm kubectl
[root@server1 docker]# systemctl enable --now kubelet
#其它同上

6、布置好私有仓库并检测是否可用,并使用 从之后另外两台虚拟机不动,改server1就行

[root@server8 ~]# cd harbor/						
[root@server8 harbor]# ./install.sh --help

Please set --with-chartmuseum if needs enable Chartmuseum in Harbor ##只安装这个参数
[root@server8 harbor]# ./install.sh --with-chartmuseum			#前提你的证书没问题,且都一致
在浏览器上访问,看能否访问。
[root@server8 docker]# scp -r certs.d/ server1:/etc/docker/		#将证书拷贝到server1。2。3

[root@server1 docker]# docker login reg.westos.org			#可以进入仓库
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@server1 docker]# docker pull busyboxplus		#是否可拉去,不行,大概率证书有问题
													#检测做一个就够了

在这里插入图片描述

# kubeadm config print init-defaults	//查看默认配置信息
默认从k8s.gcr.io上下载组件镜像,需要翻墙才可以,所以需要修改镜像仓库
[root@server1 docker]# kubeadm config images list --image-repository registry.aliyuncs.com/google_containers		//列出所需镜像
registry.aliyuncs.com/google_containers/kube-apiserver:v1.22.2
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.22.2
registry.aliyuncs.com/google_containers/kube-scheduler:v1.22.2
registry.aliyuncs.com/google_containers/kube-proxy:v1.22.2
registry.aliyuncs.com/google_containers/pause:3.5
registry.aliyuncs.com/google_containers/etcd:3.5.0-0
registry.aliyuncs.com/google_containers/coredns:v1.8.4
[root@server1 docker]# kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers		//拉取镜像

#改标签
docker images | grep egistry.aliyuncs.com | awk '{print $1":"$2}' | awk -F/ '{print $3}' | awk '{system("docker tag registry.aliyuncs.com/google_containers/"$1" reg.westos.org/k8s/"$1"")}'	

在这里插入图片描述
上传

[root@server1 docker]# docker images | grep reg.westos.org | awk '{system("docker push "$1":"$2"")}'

在这里插入图片描述显示这7个文件(除了k8s/flannel,这个我们之后上传)

//初始化集群

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s

以下信息有用 -------》
在这里插入图片描述
[root@server1 docker]# export KUBECONFIG=/etc/kubernetes/admin.conf #粘贴上面的

7、配置kubectl命令补齐功能,
[root@server1 ~]# echo “source <(kubectl completion bash)” >> ~/.bashrc
[root@server1 ~]# source .bashrc

在这里插入图片描述

Master查看状态:
	# kubectl get cs
	# kubectl get node
	# kubectl get pod -n kube-system
[root@server1 ~]# kubectl get node
NAME      STATUS     ROLES                  AGE     VERSION
server1   NotReady   control-plane,master   9m28s   v1.22.2
[root@server1 ~]# kubectl get pod -n kube-system
NAME                              READY   STATUS    RESTARTS   AGE
coredns-bdc44d9f-6v72r            0/1     Pending   0          9m9s
coredns-bdc44d9f-grknl            0/1     Pending   0          9m9s
etcd-server1                      1/1     Running   0          9m23s
kube-apiserver-server1            1/1     Running   0          9m23s
kube-controller-manager-server1   1/1     Running   0          9m23s
kube-proxy-t69l7                  1/1     Running   0          9m10s
kube-scheduler-server1      

8、安装flannel网络组件
下载 kube-flannel.yml 多试几次
在这里插入图片描述网址:https://github.com/coreos/flannel

拉取上传到我们的私有仓库
docker pull quay.io/coreos/flannel:v0.14.0
或者
[root@server1 ~]# lftp 172.25.254.111
lftp 172.25.254.111:~> cd pub/
lftp 172.25.254.111:/pub> get flannel-v0.14.tar
docker load -i  flannel-v0.14.tar

docker tag quay.io/coreos/flannel:v0.14.0 reg.westos.org/library/flannel:v0.14.0
docker push reg.westos.org/library/flannel:v0.14.0

在这里插入图片描述

更改 kube-flannel.yml 文件
在这里插入图片描述

[root@server1 ~]# kubectl apply -f kube-flannel.yml 
[root@server1 ~]# kubectl get pod -n kube-system			#反映有点慢,多试几次
NAME                              READY   STATUS    RESTARTS   AGE
coredns-bdc44d9f-6v72r            1/1     Running   0          155m
coredns-bdc44d9f-grknl            1/1     Running   0          155m
etcd-server1                      1/1     Running   0          155m
kube-apiserver-server1            1/1     Running   0          155m
kube-controller-manager-server1   1/1     Running   0          155m
kube-flannel-ds-g4mwh             1/1     Running   0          35s
kube-proxy-t69l7                  1/1     Running   0          155m
kube-scheduler-server1            1/1     Running   0          155m

让另外两台虚拟机加入集群,粘贴 以下信息有用 -------》的照片

[root@server2 ~]# kubeadm join 172.25.111.1:6443 --token pkylmf.wxsyyntz3w0uzjrc --discovery-token-ca-cert-hash sha256:c54e9ef4074a4fa5dbec628361e1280db86280d232ff6547ee17cc4428962eec

[root@server3 ~]# kubeadm join 172.25.111.1:6443 --token pkylmf.wxsyyntz3w0uzjrc --discovery-token-ca-cert-hash sha256:c54e9ef4074a4fa5dbec628361e1280db86280d232ff6547ee17cc4428962eec 

在这里插入图片描述

server2、server3也准备就绪
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值