kubeadm安装k8s

一、环境准备

1.1 修改hostname

hostnamectl set-hostname master

 

1.2 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

1.3 关闭swap

1 swapoff -a
2 修改/etc/fstab 注释掉关于swap部分

 

二、安装docker

2.1 安装

kubeadm安装k8s
安装docker
1.更新yum包
    yum update
2.卸载旧版本
    yum remove docker
3.安装依赖
    yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5.安装docker
    yum install docker-ce
6.启动docker
    systemctl start docker
    systemctl enable docker 
7.验证安装是否成功
    docker version
  kubeadm安装k8s

2.2 替换国内源

vi /etc/docker/daemon.json
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}
systemctl restart docker.service

2.3 配置k8s源

kubeadm安装k8s   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 EOF
 9 
10 
11 wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
12 rpm --import rpm-package-key.gpg
13 yum repolist
  kubeadm安装k8s

三、(Master)安装Kubernetes

3.1 安装kubeadm和相关工具

yum install -y kubelet-1.18.3 kubeadm-1.18.3 kubectl-1.18.3 --disableexcludes=kubernets

此时kubectl可能会起不来,可以在kubeadm init完成后再启动

3.2 kubeadm  config 将该文件保存备用

执行kubeadm config print init-defaults,获取默认的初始化参数文件

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

3.3 列出所需的镜像列表

kubeadm安装k8s  kubeadm config images list

用这个下载镜像 vim images_down.sh

kubeadm安装k8s
#!/bin/bash
images_name=`kubeadm config images list|awk -F '/' '{print $2}'|xargs`
for i in $images_name
do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$i
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$i k8s.gcr.io/$i
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$i
done
kubeadm安装k8s

 

3.4 初始化环境

kubeadm安装k8s     kubeadm init \ --apiserver-advertise-address=192.168.126.133 \ --service-cidr=10.1.0.0/16 \ --token-ttl 0 \ --pod-network-cidr=10.244.0.0/16     # 如果没有前面下载镜像或者前面那个不好使可以加个参数 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers   这一步完了会出现连接信息 例如  kubeadm join 192.168.126.133:6443 --token d4k8y9.p0ufoc8sc1bucxta \
--discovery-token-ca-cert-hash sha256:fe7f34f021e4e3a9c975a00bea0d164086497d100b12dc38dcd9de44d4ee1614

 

3.5 配置授权信息

按照init最后部分提示执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

3.6 配置网络信息(flannel)

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

 

3.7 Master配置完成

systemctl start kubelet && systemctl enable kubelet    使用命令查看pod情况  kubectl get pods -n kube-system

 

3.8  Kubernetes官方默认策略是worker节点运行Pod,master节点不运行Pod。如果为了测试或开发目的部署单节点集群,可以通过以下命令设置:

kubectl taint nodes --all node-role.kubernetes.io/master-

 

3.6 配置node节点

yum install -y kubelet-1.18.3 kubeadm-1.18.3 --disableexcludes=kubernets
kubeadm join 192.168.126.138:6443 --token hoo73q.z19cr577usp5bfj0 --discovery-token-ca-cert-hash sha256:01bd2257b4593479708f7804bd53fa11083fbf5dbf110e00cb1bd6488c8b600b

 

四、故障排查

systemctl status kubelet

journalctl -xeu kubelet


查看POD详情
kubectl describe pod kube-flannel-ds-amd64-9trbq -n kube-system

 

五、安装nginx测试

5.1 编写pod_nginx.yml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80

5.2 创建POD

创建POD
kubectl create -f pod_nginx.yml

查看POD
kubectl get pod

删除POD
kubectl delete -f pod_nginx.yml

查看POD详情
get pod -o wide

 

至此,通过kubeadm工具就实现了Kubernetes集群的安装。

 

上一篇:kubeadm和kubectl管理


下一篇:kubeadm部署k8s