K8S系统学习(一)

参考链接:https://blog.csdn.net/HsiaChubby/article/details/90442170

参考链接:https://segmentfault.com/a/1190000018741112?utm_source=tag-newest

一、K8S架构图。(K8S的背景,作用什么的百度可以查阅,我主要一下跟实战相关的)

构成介绍:

master:处理结点,接收请求的。

Node:计算结点,部署应用。

kubectl:命令行工具,通过它可以操作K8S中的资源。返回一个vip,VIP在三个master之间进行漂移。

etcd:也需要做高可靠,他们存储了K8S中的一些信息。

 

前面的安装总有地方不对,现在按照教程从头安装一遍。

先把以前的卸载了。参考:https://blog.csdn.net/ccagy/article/details/85845979

kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

------------------------------------------实战篇--------------------------------------

1.修改主机名

2.修改hosts文件

3.安装基础软件包(这个我平时陆续已安装)

yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel
autoconf automake zlib-devel python-devel epel-release lrzsz openssh-server
socat ipvsadm conntrack

4.关闭防火墙(前半截是关闭防火墙 后半截是禁止开机启动)

systemctl stop firewalld.service && systemctl disable firewalld.service

安装iptables 如果你要改用iptables的话,需要安装iptables服务
#安装
yum install iptables-services -y
禁用iptables
service iptables stop && systemctl disable iptables

5.时间同步
在masterNode1上:
ntpdate cn.pool.ntp.org
systemctl start ntpd && systemctl enable ntpd
在其他所有机器上(masterNode2、node1.....):
ntpdate master1
计划任务:(每小时检查一次时间更新)
crontab -e
* */1 * * * /usr/sbin/ntpdate master1

配置无密码登陆(ssh免密码登陆,可自寻查找资料):
master到node的无密码登陆
master到master无密码登陆

二、kubernetes集群安装准备

6.安装docker
在各个节点配置docker和k8s的阿里云镜像仓库
cd /etc/yum.repos.d/
wget "https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"
vim kubernetes.repo
[kubernetes]
name=kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
#gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
rpm --import yum-key.gpg
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import rpm-package-key.gpg
yum install docker-ce-18.09.3* -y
(1)启动docker服务
systemctl start docker

systemctl status docker (出现active running表示docker启动成功)

7.配置docker加速器(先得在阿里云平台注册自己的账号,用自己的镜像加速器)
vim /etc/docker/daemon.json 添加如下一行
{"registry-mirrors": ["https://0h4pgn26.mirror.aliyuncs.com"]
}

systemctl daemon-reload && systemctl restart docker
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

8.关闭交换分区,如果不关闭交换分区会报错,在1.14版本不支持swap

swapoff -a

 

 

(2)创建初始化k8s需要的文件,在master1上操作,新建kubeadm-config,在该文件中输入以下内容:

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: v1.14.0
controlPlaneEndpoint: "172.16.12.199:6443"
apiServer:
 certSANs:
 - 172.16.12.217
 - 172.16.12.218
 - 172.16.12.219
 - 172.16.12.199

networking:
 podSubnet: 10.244.0.0/16
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs

 

 

最后所有结点全部加入:

 

 k8s集群搭建好以后,默认所有的配置文件都在 该目录下:

cd /etc/kubernetes/

 

附注:执行过程中遇到的问题

1.由于之前我安装过V1.16.2版本的K8S,担心和当前安装的版本V1.14.0有所冲突,所以先把以前的镜像进行删除

docker rmi id 命令报错

执行docker rmi name:tag成功删除。

 

 2.删除某个镜像时,说有容器正在运行该镜像。于是先停止容器,再删除容器。

3.在执行过程中用到的命令。

查看docker运行状态:service docker status

查看kubelet运行状态:systemctl status kubelet

按名字查找某个文件:file / -name filename (/表示所有目录都查找)

4.删除一个docker中的镜像

docker rmi $(docker images -q)

强制删除 无法删除的镜像

docker rmi -f <IMAGE_ID>
docker rmi -f $(docker images -q)

 5.列出已经安装过的rpm包

yum list installed | grep kube

 

6、卸载安装的rpm包

yum remove kubeadm.x86_64 kubectl.x86_64 kubelet.x86_64 -y

7、安装指定的kubeadm

yum install -y kubelet-1.12.1 kubeadm-1.12.1 kubectl-1.12.1

8、 kubectl get pods -n kube-system命令,可以查看K8S中的所有资源。

9、检查自己的集群资源是否齐全。

 10、

posted on 2019-11-22 11:16  毛无语666  阅读(756)  评论(0编辑  收藏  举报

导航