Kubernetes安装

Kubernetes安装

1.操作系统安装及调优

1.1.操作系统版本

使用centos7.7 1908

1.2.配置yum

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

1.3.关闭防火墙

 service iptables stop
 service firewalld stop
 systemctl disable firewalld

1.4.关闭swap分区

swapoff -a && sed -i '/ swap / s/^(.*)$/#\1/g' /etc/fstab

1.5.关闭selinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

1.6.调整内核参数

cat > kubernetes.conf <
cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf

会提示sysctl: cannot stat /proc/sys/net/netfilter/nf_conntrack_max: No such file or directory
没事的

1.6.关闭系统不需要的服务

systemctl stop postfix && systemctl disable postfix

1.7.设置rsyslogd和systemd journald

mkdir /var/log/journal
mkdir /etc/systemd/journald.conf.d
cat > 99-prophet.conf << EOF
[Journal]

# 持久化保存到磁盘
Storage=persistent
     
# 压缩历史日志
Compress=yes
     
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
     

# 最大占用空间 10G
SystemMaxUse=10G
     
# 单日志文件最大 200M
SystemMaxFileSize=200M
     
# 日志保存时间 2 周
MaxRetentionSec=2week
     
# 不将日志转发到 syslog
ForwardToSyslog=no
EOF
systemctl restart systemd-journald
cp 99-prophet.conf /etc/systemd/journald.conf.d/99-prophet.conf

1.8.升级内核

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt

可以通过cat /boot/grub2/grub.cfg |grep "menuentry "查看可以使用的内核

grub2-set-default "CentOS Linux (4.4.214-1.el7.elrepo.x86_64) 7 (Core)"

1.9.重启

reboot

1.10.检查内核版本

uname -r

1.11.kube-proxy开启ipvs的前置条件

modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.modules << EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules
/etc/sysconfig/modules/ipvs.modules && lsmod |grep -e ip_vs -e nf_conntrack_ipv4

2.安装docker

2.1.安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

2.2.导入阿里的docker仓库
2.3.更新系统

yum update -y && yum install -y docker-ce

2.4.重启

grub2-set-default "CentOS Linux (4.4.214-1.el7.elrepo.x86_64) 7 (Core)"
reboot

2.5.创建目录

mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
    "max-size": "100M"
    }
}
EOF

2.6.启动docker

systemctl start docker
systemctl enable docker
mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload && systemctl restart docker && systemctl enable docker

2.7.导入阿里的kubernetes仓库

yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
systemctl enable kubelet.service

3.安装kubernetes(所有节点都要执行)

3.1.初始化主节点

上传 kubeadm-basic.images.tar.gz并解压

touch /tmp/temp1.log
cat > /root/docker_imput.sh << EOF
#!/bin/sh
ls /root/kubeadm-basic.images>/tmp/temp1.log
cd /root/kubeadm-basic.images
for i in \$( cat /tmp/temp1.log )
do
 docker load -i \$i
done
EOF
chmod 755 /root/docker_imput.sh
sh /root/docker_imput.sh

3.2.生成kubeadm默认配置文件

kubeadm config print init-defaults>kubeadm-config.yaml

3.2.修改 vi kubeadm-config.yaml

localAPIEndpoint:
advertiseAddress 本机地址

kubernetesVersion: v1.15.1

networking增加
podSubnet: "10.244.0.0/16"

scheduler后换行增加:
---
apiVersion: kubeproxy.config.k8s.io/vlalphal
kind: kubeProxyConfiguration
featureGates:
SupportIPVSProxyMode: true
mode: ipvs

3.3.初始化配置

kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log

如果提示需要关闭swap,执行swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

mkdir $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.4.归档重要文件(非必须)

cd $HOME
mkdir install-8s
mv kubeadm-init.log kubeadm-config.yaml install-8s
mkdir plugin
cd plugin
mkdir flannel

3.5.安装flannel

将docker_flannel_v0.11.0-amd64.tar传入/root下

docker load < docker_flannel_v0.11.0-amd64.tar

方法1:

#kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yum

方法2:

cd /root/plugin/flannel
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yum
kubectl create -f kube-flannel.yum

3.6.检查有无kube-flannel开头的pod

kubectl get pod -n kube-system

3.7.检查node的状态是否为ready
kubectl get node

4.kubernetes Node节点加入集群

4.1.查看init日志
找到kubeadm join 192.168.66.10:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:22e3c51db9f42ffc891eb910bef42f9284053d9a68c5760e0224f2dc493a2717

4.2.Node加入集群

​ 在node节点上行执行上一步找到的kubeadm join命令,如果报错,建议先执行:
kubeadm reset
​ 再重新执行

5.构建harbor

5.1.登陆所有k8s节点,增加harbor地址至docker,避免https信任问题
vi /etc/docker/daemon.json

在倒数第二个}后面加,(注意这个逗号),在换行追加

 "insecure-registries":["https://hub.yao.com"]

保存退出

5.2.重启docker
systemctl restart docker
5.3.修改hosts

​ 在所有k8s节点上修改hosts,添加

7.7.7.7(你的 ip) https://hub.yao.com

​ 至hosts文件保存

5.2.登陆harbor服务器,并参照之前的方法,安装docker
5.3.部署docker-compose

上传docker-compose

mv docker-compose /usr/bin
chmod a+x /usr/bin/docker-compose

上次harbor-offline-installer-v1.2.0.tgz
解压tar -zxvf harbor-offline-installer-v1.2.0.tgz

mv harbor /usr/local/
vi /usr/local/harbor/harbor.cfg

修改hostname = hub.yao.com
修改ui_url_protocol=https
保存退出

5.4.制作https证书
1.新建证书目录
mkdir -p /data/cert/
2.制作证书:
openssl genrsa -des -out server.key 2048

输入两次密码

3.制作证书请求:
openssl req -new -key server.key -out server.csr

密码-CN,BJ,BJ,atguigu-atguigu,hub.atguigu.com,[email protected],两次回车

4.备份私钥:
cp server.key server.key.org
5.私钥转证书,删除里面的密码:
openssl rsa -in server.key.org -out server.key

输入旧密码

6.用证书请求签名:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
7.赋权:
chmod a+x *
5.5.安装harbor

cd /usr/local/harbor
./install.sh

5.6.测试harbor是否可用

1.使用浏览器登陆:
https://hub.yao.com

2.登陆任意k8s节点

docker login https://hub.yao.com
dockup push 你的镜像(具体命令可以子在harbor页面找到)

你可能感兴趣的:(Kubernetes安装)