【k8s安装笔记】

一、前期准备

1、准备3台虚拟机

128.128.7.11 lwp11  注意主机名不能有“_”
128.128.7.12 lwp12
128.128.7.13 lwp13

虚拟机的CPU个数必须大于1,Master内存不能小于10G

2、安装docker,步骤详见docker安装笔记

3、把docker加入到systemd

默认k8s在systemd组下

 vi /etc/docker/daemon.json

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

如果已经安装k8s,docker未在systemd组,还需运行下面脚本

sed -i "s/cgroupDriver: systemd/cgroupDriver: cgroupfs/g" /var/lib/kubelet/config.yaml
systemctl daemon-reload
systemctl restart kubelet

4、关闭selinux, firewalld, swap

(1)centos 关闭selinux(需要关闭SELinux 或者 将enforcing改为 permissive 模式)
查看状态  sestatus -v 或者  sestatus   如果SELinux status参数为enabled即为开启状态
1)临时关闭(不用重启机器,重启后状态恢复):
setenforce 0           ##设置SELinux 成为permissive模式
                              ##setenforce 1 设置SELinux 成为enforcing模式
2)修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
========================================================================
(2)centos 关闭firewalld(需要关闭firewalld )
systemctl list-unit-files|grep firewalld
启动一个服务:systemctl start firewalld
关闭一个服务:systemctl stop firewalld
重启一个服务:systemctl restart firewalld
显示一个服务的状态:systemctl status firewalld
在开机时启用一个服务:systemctl enable firewalld
在开机时禁用一个服务:systemctl disable firewalld
========================================================================
(3)centos 关闭swap
swapoff -a
vi /etc/fstab    将 /swapfile none swap defaults 0 0 这一行前面加个 # 号将其注释掉

5、时间同步【启动chronyd系统服务】,如为虚拟机无需此操作

systemctl  start  chronyd   --启动时间同步进程 
systemctl  enable  chronyd   --将时间同步进程加入系统启动时,自动加载

二、通用安装(master和node均安装)

1、配置k8s.conf文件

将桥接的IPv4流量传递到iptables的链【有一些ipv4的流量不能走iptables链【linux内核的一个过滤器,每个流量都会经过他,然后再匹配是否可进入当前应用进程去处理】,导致流量丢失】

vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0

保存后重启生效

sysctl --system

2、添加阿里云YUM软件源

在/etc/yum.repos.d目录下vim kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
保存

若阿里云有问题,按腾讯云配置

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.cloud.tencent.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://mirrors.cloud.tencent.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.cloud.tencent.com/kubernetes/yum/doc/rpm-package-key.gpg      

注意:安装提示加载此文件失败,查看gpgkey行是否变成了2行,必须是1行

3、安装kubeadm,kubelet和kubectl

apt-mark hold kubelet kubeadm kubectl --让k8s软件 不随系统更新,虚拟机不需要运行

在部署kubernetes时,要求master node和worker node上的版本保持一致,否则会出现版本不匹配导致奇怪的问题出现。
我们需要安装指定版本的kubernetes。那么如何做呢?在进行yum安装时,可以使用下列的格式来进行安装:

yum install -y kubelet-<version> kubectl-<version> kubeadm-<version>

yum list kubelet kubeadm kubectl  --showduplicates|sort -r   查看kubelet kubeadm kubectl的可用版本
 
yum install -y kubelet-1.23.4
yum install -y kubectl-1.23.4
yum install -y kubeadm-1.23.4
yum install -y kubernetes-cni-1.23.4 (安装失败)

4、启动kubelet

systemctl enable kubelet  设置kubelet开机启动
systemctl start kubelet

三、master节点安装

1、master节点初始化------- master操作

(1)操作命令

kubeadm init --apiserver-advertise-address=128.128.7.11 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16    

(2)172.21.29.212为master节点IP;10.244.0.0/16是k8s内部使用网段
(3)上述命令耗时较长,原因是在下载东西。如果失败,先查看是否全部下载失败,下载失败的单独下载后在初始化

kubeadm config images list 用于查看初始化需要下载的image
docker images  查看已有的image

Explore Docker's Container Image Repository | Docker Hub   下载失败的可以在这个地址找到对应的Tag进行下载,之后要转换标签,可以删除无用的image

kubectl get pv|grep Released|awk '{print $1}'|xargs kubectl delete pv

 docker pull mirrorgooglecontainers/pause:3.1 手动下载命令
 docker tag docker.io/coredns/coredns:1.1.3  k8s.gcr.io/coredns:1.1.3 转换标签命令
 docker rmi coredns/coredns:$DNS_VERSION  删除的命令

kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' |sh -x  下载需要的镜像
docker images |grep mirrorgooglecontainers |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#mirrorgooglecontainers#k8s.gcr.io#2' |sh -x  重命名镜像,   2个 mirrorgooglecontainers需要替换
docker images |grep mirrorgooglecontainers |awk '{print "docker rmi ", $1":"$2}' |sh -x 删除mirrorgooglecontainers镜像,   1个 mirrorgooglecontainers需要替换

2、执行初始化成功后的命令------- master操作

下图红线框内的三条命令要执行
在这里插入图片描述

3、安装Pod网络插件------- master操作

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
//远程kube-flannel.yml不可用时,手工创建kube-flannel.yml文件,出现
本地的flannel.yml 可以kubectl apply -f kube-flannel.yml直接使用
kubectl get pods -n kube-system 可以查看状态     kubectl get node 查看节点

在这里插入图片描述

四、Node节点操作,将Node节点加入集群

1、复制第三步第2小步的结果

2、每个node节点上执行

kubeadm join 128.128.7.11:6443 --token n247yi.tnpc3a5m97wymefr         --discovery-token-ca-cert-hash sha256:bd1d4b9e2609bf2d08faf13fce0bbb5ea14990c81c66b55c92025c0d0d2ebb85

五、其他

1、创建secret,保证k8s可以拉取仓库中的私有镜像

kubectl create secret docker-registry myregcred --docker-server=http://128.128.7.11:8010 --docker-username=sft --docker-password=Wisdom.df6100 --docker-email=271627317@qq.com

说明:
myregcred secret的名字,不同的secret,名字不同
–docker-server 是harbor的访问地址
–docker-username 是用户名,具有私有仓库的访问权限
–docker-password 密码
–docker-email 邮箱

2、安装nfs服务,创建pv pvc使用

3、Kubernetes-kubectl命令出现错误The connection to the server localhost:8080 was refused

出现这个问题的原因是kubectl命令需要使用kubernetes-admin来运行,解决方法如下,将主节点中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下,然后配置环境变量:

echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile
立即生效

source ~/.bash_profile
在运行kubectl命令就成功了
————————————————

原文链接:https://blog.csdn.net/qq_24046745/article/details/94405188

4、常用术语

(1)port
port是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service

(2)nodePort
nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service。

(3)targetPort
targetPort是pod的端口,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器。

(4)containerPort
containerPort是pod内部容器的端口,targetPort映射到containerPort。
(5)图解
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值