k8s单机安装及测试

 一直说安装k8s试用一下,一直没有成功,要么是安装一半报错,没有时间去找问题。

1.关闭selinux

setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

2.关闭防火墙

systemctl stop firewalld  && systemctl disable firewalld

 3.设置hostname

    按照如下命令修改ip和名字的映射,如下截图:

图片

4.修改内核参数和模块

cat <<EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF#使内核参数配置生效sysctl --system  &&  modprobe br_netfilter  && lsmod | grep br_netfilter

5.关闭交换内存

    如果不关闭,kubelet服务将无法启动,所以这里还是关闭一下。

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

6.安装docker ,可修改源为阿里的源

yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager -y --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum -y install docker-ce-18.06.3.ce-3.el7 docker-ce-cli-18.06.3.ce-3.el7 containerd.iosystemctl start docker && systemctl enable docke

7.设置docker配置

    vi  /etc/docker/daemon.json 添加如下内容,注意这里是json字符串,否则无法启动docker,被其中的一个引号坑惨了。

{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {
"max-size": "100m"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]}

 8.配置kubernetes yum源,用以安装Kubernetes基础服务及工具,此处使用阿里云镜像仓库源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF

 9.安装Kubernetes基础服务及工具

yum -y install kubelet-1.13* kubeadm-1.13* kubectl-1.13*systemctl start kubeletsystemctl enable kubelet.service

10.下载k8s相关镜像并打标签

    编写以下shell脚本并执行。

for i in `kubeadm config images list`; do  imageName=${i#k8s.gcr.io/}  docker pull registry.aliyuncs.com/google_containers/$imageName  docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName  docker rmi registry.aliyuncs.com/google_containers/$imageNamedone;

 11.初始化k8s和网络

kubeadm init  --apiserver-advertise-address=192.168.83.165 --kubernetes-version=v1.13.12 --pod-network-cidr=10.100.0.0/16  --ignore-preflight-errors=all#安装成功标志#Your Kubernetes master has initialized successfully!#开机启动 && 启动服务systemctl enable kubelet && systemctl start kubelet

12.初始化kubectl配置

mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')

 13.默认k8s的master节点是不能跑pod的业务,需要执行以下命令解除限制

kubectl taint nodes --all node-role.kubernetes.io/master-#如果不允许调度#kubectl taint nodes master1 node-role.kubernetes.io/master=:NoSchedule#污点可选参数      NoSchedule: 一定不能被调度      PreferNoSchedule: 尽量不要调度      NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod

 14.查看主节点运行 Pod 的状态

kubectl get pods --all-namespaces -o wide

图片

15.测试创建一个nginx

# 创建一个nginx服务kubectl create deployment nginx  --image=nginx:1.14-alpine
#暴露端口kubectl expose deploy nginx  --port=80 --target-port=80  --type=NodePort

    查看服务kubectl get pod,svc

图片

图片

关注公众号可查看图片!!

 

 

 

posted @ 2022-08-30 18:00  人不疯狂枉一生  阅读(381)  评论(0编辑  收藏  举报