kubernetes(k8s)基础环境搭建

什么是kubernetes(k8s)?

k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

(Kubernetes(K8S)是谷歌的第三个容器管理系统(前两个:Borg、Omega,这两个是谷歌内部系统,k8s是开源的),Kubernetes在Docker技术之上,为容器化的应用提供了资源调度、部署运行、服务发现和扩容缩容等丰富多样的功能。)

kubernetes(k8s)的工作原理

Kubernetes 的具体工作原理就是根据可用计算资源和每个容器的资源要求,管理计算实例集群,并调度要在集群上运行的容器。在逻辑分组中运行的容器被称为 Pod,您可以将一个或多个容器作为一个 Pod 进行运行和扩展

Kubernetes 控制层面软件确定何时何地运行 Pod、管理流量路由选择,以及根据利用率或您定义的其他指标扩展 Pod。Kubernetes 可以根据资源需求自动在集群上启动 Pod,并在 Pod 或它们运行的实例出现故障时自动重启 Pod。每个 Pod 都会获得一个 IP 地址和一个 DNS 名称,Kubernetes 用它们来连接您的服务和外部流量。

实验环境

两台或三台虚拟机这里我选择两台

master节点---10.0.0.10(nat网卡)

node节点---10.0.0.20(nat网卡)

两台主机的cpu数量必须为2或以上

在搭建过程中一定要注意在master节点或是node节点上操作

实验过程

1、关闭防火墙、selinux、修改hosts文件

master、node节点同步操作

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

[root@master ~]# vi /etc/selinux/config 

SELINUX=disabled

[root@master ~]# vi /etc/hosts   //做主机映射

10.0.0.10       s1
10.0.0.20       s2

 2、双向登录

master、node节点同步操作

 [root@master ~]# ssh-keygen   //一直按回车键

 [root@master ~]# ssh-copy-id node

 [root@node ~]# ssh-keygen

 [root@node ~]# ssh-copy-id master

 3、关闭swap(会影响性能,一般关闭掉)

master节点操作

[root@master ~]# swapoff -a    //临时关闭swap

[root@master ~]# vi /etc/fstab    //永久关闭

#/dev/mapper/centos-swap swap                    swap    defaults        0 0

 4、安装docker

master、node节点同步操作

[root@master ~]# yum -y install docker

 5、修改配置文件、启动docker

master节点操作

[root@master ~]# vi /etc/docker/daemon.json

{

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

}

[root@master ~]# systemctl start docker && systemctl enable docker

[root@master ~]# systemctl daemon-reload

 6、启动docker

node节点操作

[root@node ~]# systemctl daemon-reload

[root@node ~]# systemctl start docker && systemctl enable docker

 7、配置转发参数

master、node节点同步操作

[root@master ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

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

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

[root@master ~]# sysctl -p    //配置生效

 8、添加k8s的yum源

master、node节点同步操作

[root@master ~]# vi /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
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

 9、安装k8s并启动(安装的是18.2版本)

master、node节点同步操作

[root@master ~]# yum list

[root@master ~]# yum install -y kubeadm-1.18.2-0 kubectl-1.18.2-0 kubelet-1.18.2-0

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

 10、初始化kubernetes集群

master节点操作

[root@master ~]# kubeadm init --kubernetes-version=v1.18.2 --apiserver-advertise-address=10.0.0.10 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16

! 以下内容需要复制出来,后面操作需要用到

Your Kubernetes control-plane has initialized 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) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "systemctl restart kubelet[podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.0.0.10:6443 --token f39ovk.9ph4xfnuuoibg08a \
    --discovery-token-ca-cert-hash sha256:70d92948832da9007b9ec4447c28663e6d66c68fe737c3d88ead18f5a0d19659 

执行这三条命令

[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

把calico_v3.10.yaml 上传到master节点的root目录下 

修改地址为仓库的地址

[root@master ~]# vi calico_v3.10.yaml

620               value: "10.244.0.0/16"    //修改为当前主机的ip网段

运行即可

[root@master ~]# systemctl restart kubelet

[root@master ~]# kubectl apply -f calico_v3.10.yaml

将node节点加入master节点中

[root@node ~]# kubeadm join 10.0.0.10:6443 --token fami7h.7mab277ujskq720s --discovery-token-ca-cert-hash sha256:d97e0674fa3f7da0a924b9ea6c5a29e1919545ce4ecdf617b4302221338643fc

 最后重启一下kubelet,出现ready则成功

[root@master ~]# kubectl get nodes

NAME   STATUS   ROLES    AGE     VERSION

master     Ready    master   11m     v1.18.2

node     Ready       5m13s   v1.18.2

这样kubernetes集群基础环境就搭建成功,不限于两台虚拟机搭建,也可以使用三台,操作方法不变,master节点只有一台,node节点可以有几台。若搭建过程中出现问题,请上度娘或其他网站查询

新手上路,不吝赐教

你可能感兴趣的:(k8s基础环境,kubernetes)