kubeadm安装k8s

Kubernetes

基本环境配置

官网文档 入门 | Kubernetes

Kubeadm | Kubernetes

官方二进制安装

https://github.com/kubernetes/kubernetes/releases/

主机改名

hostnamectl set-hostname 

/etc/hostname

设置域名解析

192.168.1.88 master 
192.168.1.250 node1 
192.168.1.251 node2

关闭防火墙

同步时间

yum -y install ntp ntpdate
ntpdate 0.asia.pool.ntp.org  #这里主要就是通过时间服务器对系统时间进行同步,所以0.asia.pool.ntp.org并不是固定的,大家可以选择time.nist.gov、time.nuri.net、0.asia.pool.ntp.org、1.asia.pool.ntp.org、2.asia.pool.ntp.org、3.asia.pool.ntp.org中任意一个,只要保证可用就OK。
将系统时间写入硬件时间
hwclock --systohc
timedatectl

设置定时同步时间 crontab -e */5 * * * * ntpdate time2.aliyun.com ntpdate time2.aliyun.com这个是同步阿里云的时间

升级内核到最新版

#导入ELRepo仓库的公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#为yum安装ELRepo仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#查看可用版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装最新内核
yum --enablerepo=elrepo-kernel install kernel-ml
# 查看当前可用内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
    根据计算机的实际响应,查看最新内核前的序号,然后执行命令grub2-set-default ${序号} ,例如:grub2-set-default 0
选好后重启
升级完成,可以通过uname -r命令进项验证。
grubby --default-kernel #查看内核

关闭swap

swapoff -a  
sed -ri 's/.*swap.*/#&/' /etc/fstab

安装Docker

yum install -y yum-utils
yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
​
yum list docker-ce --showduplicates | sort -r  #查看docker版本
​
yum  -y install docker-ce-20.10.12-3.el7   #选择安装版本
​
#阿里云镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hf293614.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

kubeadm安装

安装kubeadm和kubelet

添加阿里云yum软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
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
EOF
安装kubeadm和kubelet
yum install -y kubelet-1.21.3 kubeadm-1.21.3 
systemctl enable kubelet
初始化主节点

部署kubernetes master

kubeadm init \
  --apiserver-advertise-address=192.168.1.88 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.21.3 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all
根据提示输入
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

令牌

kubeadm join 192.168.1.88:6443 --token uy3hp0.11ibijfjae59phcg \
    --discovery-token-ca-cert-hash sha256:5d4f3ad608159b3e37fa48caad1053e7145764a0bee01880320da81320c7d73b 
kubectl get nodes  #查看节点

部署容器网络

wget https://docs.projectcalico.org/manifests/calico.yaml
#下载完后,需要修改字段CALICO_IPV4POOL_CIDR,与前面kubeadm init命令中的 --pod-network-cidr参数一样。
#修改完后文件后,输入命令kubectl apply -f calico.yaml执行部署容器网络。稍等几分钟,然后执行kubectl get pods -n kube-system查看部署进度。等Calico Pod都Running,节点也会准备就绪。
​
vim calico.yaml
10.244.0.0/16 #这里与上面一致
​
kubectl apply -f calico.yaml #执行部署容器网络,等待几分钟后执行下面命令
kubectl get pods -n kube-system
node节点加入集群

token有效期为24小时

kubeadm token create --print-join-command
#当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成:

测试kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
#kubectl 公开部署nginx 端口80 类型及节点端口
kubectl get pod,svc
等待几分钟,测试任意Node的IP

http://192.168.1.250:30991/

部署dashboard

Dashboard是官方提供的一个UI,可用于基本管理K8s资源。

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
#如果报错无法连接,就https://site.ip138.com/查一下raw.githubusercontent.com的ip,把查到的ip加进去
vim /etc/hosts
185.199.108.133 raw.githubusercontent.com

默认Dashboard只能集群内部访问,您可以运行命令vi recommended.yaml修改Service类型为NodePort,方便集群外的机器访问。

vim recommended.yaml
​
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30443
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort
  
#nodePort: 30443这个是自定义端口
kubectl apply -f recommended.yaml
kubectl get pods -n kubernetes-dashboard
kubectl get svc -A |grep kubernetes-dashboard  #查看

访问地址:https://<任意Node的IP>:30443,将上条命令产生的token复制后填入,进行登录。注意:是https://

https://192.168.1.88:30443/

待所有pod处于running的状态后,创建service account并绑定默认cluster-admin管理员集群角色:# 创建用户

kubectl create serviceaccount dashboard-admin -n kube-system
# 用户授权
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
# 获取用户Token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
获得Token后输入里面
Type:  kubernetes.io/service-account-token
​
Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6InhCRWV6bWFlcVZqZ2tZTnJORVRDZUx6UWtvOUxrWXltVDduTDRzdDhjOEEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4teHhrODUiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZTk0NTM5MmItNDU0OS00YjVhLWIzNjUtNTc1YjIyN2Q1MWNmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.fQf4-y8N5osjR7IEX1FSXU8FxtVxtRjGnIkt6tB3R47UisV0WaZ1_FsfXfpghpoQ3Zfjz-sK0kCl4xVzrB5IdojSIreKK4V3eafe3gaagkeRR915oAtYNHlB3Fif0QGnspOW4kkDtDTaOYKwLT3o-xbhb2TxGu7vdyqEq-SxIodiA7wsWAzugkfilEz-748txR7WRNi8C6IvCeTSGQZ22BW0d2I-ALZNGAOJxDAzHVXFNtGFPPJKRTtHS_PEGoHaNDKzQn4Vvl6BaLW4vtO25F2Y6QxRgx1R66vJQzh_Tslf3ZWaxPgU2OF8ujEDd1QkTkrcl5hScj6kMS9hL3-VcQ
 

ps: kubernetes集群重新初始化

1、移除所有工作节点

kubectl delete node node1
kubectl delete node node2

2、所有工作节点删除工作目录,并重置kubeadm
rm -rf /etc/kubernetes/*
kubeadm reset
3、Master节点删除工作目录,并重置kubeadm
rm -rf /etc/kubernetes/*
rm -rf ~/.kube/*
rm -rf /var/lib/etcd/*
kubeadm reset -f
4、重新init kubernetes
posted @ 2022-10-16 13:19  落笔画秋枫乀  阅读(6)  评论(0编辑  收藏  举报  来源