虚拟机iso下载
安装完虚拟机后:
一 更新yum云
-
安装wget yum install wget
wget --version 查看wget版本
-
配置yum云
ll /etc/yum.repos.d/ 查看yum目录
cp CentOS-Base.repo CentOS-Base.repo-cp 备份yum目录
-
更新yum到国内镜像
CentOS5:wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6:wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS7:wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
CentOS8:wget http://mirrors.163.com/.help/CentOS8-Base-163.repo
-
更新yum云
yum -y update
二 安装kubernete
-
关闭防火墙及其服务
systemctl disable firewalld
systemctl stop firewalld
-
yum 安装kubernetes etcd
yum install -y etcd kubernetes etcd
-
启动kubernetes 服务并查看状态
systemctl start etcd
systemctl status etcd
systemctl start docker
systemctl status docker
systemctl start kube-apiserver
systemctl status kube-apiserver
systemctl start kube-controller-manager
systemctl status kube-controller-manager
systemctl start kube-scheduler
systemctl status kube-scheduler
systemctl start kubelet
systemctl status kubelet
systemctl start kube-proxy
systemctl status kube-proxy
-
配置tomcat
mkdir /usr/local/k8s
cd /usr/local/k8s
创建mytomcat.rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: mytomcat
spec:
replicas: 3
selector:
app: mytomcat
template:
metadata:
labels:
app: mytomcat
spec:
containers:
- name: mytomcat
image: tomcat:7-jre7
ports:
- containerPort: 8080
创建mytomcat.svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mytomcat
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: mytomcat
-
创建k8s rc与svc
kubectl create -f mytomcat.rc.yaml
kubectl create -f mytomcat.svc.yaml
-
查看k8s pods
kubectl get pods // 查看失败 vi /etc/kubernetes/apiserver 去掉serviceAccount
访问: http://ip:30001
三 遇到问题处理解决方案
-
docker pull 失败解决方案
1 yum install *rhsm* -y
2 docker search pod-infrastructure
3 docker pull docker.io/tianyebj/pod-infrastructure
4 docker tag tianyebj/pod-infrastructure 10.0.0.103:5000/pod-infrastructure
5 docker push 10.0.0.103:5000/pod-infrastructure
vi /etc/kubernetes/kubelet
修改 KUBELET_POD_INFRA_CONTAINER="--pod-infra-containerimage=10.0.0.103:5000/pod- infrastructure:latest"
-
重启k8s服务
systemctl restart kube-apiserver
systemctl restart kube-controller-manager
systemctl restart kube-scheduler
systemctl restart kubelet
systemctl restart kube-proxy
-
解决外网无法访问问题
vi /etc/sysctl.conf
添加 net.ipv4.ip_forward=1
进入/usr/local/k8s目录
执行 kubectl replace -f mytomcat.rc.yaml
kubectl delete svc --all
kubectl create -f mytomcat.svc.yaml
-
Kubernetes nodePort 不可访问的解决方法
getenforce 查看 selinux, 如果显示 Enforcing,表示开启
setenforce 0 关闭 selinux
iptables --flush
iptables -tnat --flush 清除 iptables
iptables -P FORWARD ACCEPT 接受所有来路
service docker restart 重启 docker,k8s 会重新调度
kubectl delete pods -all 清理所有pods
执行 kubectl replace -f mytomcat.rc.yaml
kubectl delete svc --all
kubectl create -f mytomcat.svc.yaml