实例配置
CPU: 2核 内存: 4GB
系统:Centos7
数据库:postgreSQL
使用工具
《参考文档》
#1、《CentOs 7 单机 安装 K8S Docker》
#https://www.codenong.com/cs106639747/
#2、《PV与PVC的使用》
#https://www.qikqiak.com/k8s-book/docs/33.PV.html
#3、解决拉取# pod-infrastructure的问题
#https://blog.csdn.net/zhaikaiyun/article/details/103983766
安装k8s&docker
为防止文章丢失,备份一份。以下步骤1-5来源于参考文档一
1、关闭防火墙
systemctl disable firewalld #停止firewall
systemctl stop firewalld #禁止firewall开机启动
firewall-cmd --state #防火墙状态
swapoff -a #临时关闭
setenforce 0 #永久关闭
或
vim /etc/selinux/config
SELINUX=disabled
2、 yum 安装 k8s
yum remove etcd kubernetes
yum install -y etcd kubernetes
#修改docker配置信息
vi /etc/sysconfig/docker
#配置信息局部示例
##OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
OPTIONS='--selinux-enabled=false --insecure-registry gcr.io'
service docker restart #重启docker
3、修改kubernetes配置
vi /etc/kubernetes/apiserver
#配置信息局部示例
#KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
4、启动服务
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
或者
for SERVICES in etcd docker kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy; do
systemctl start $SERVICES
done
5、验证
kubectl version #查看版本
kubectl get componentstatus #组状态
ps -ef|grep kube #查看进程
kubectl cluster-info #信息
kubectl get nodes #节点
安装postgreSql并访问
docker pull postgres
#参考文档三:解决Back-off pulling image "registry.access.redhat.com/rhel7/pod-infrastructure:latest"
docker search pod-infrastructure
docker tag docker.io/tianyebj/pod-infrastructure registry.access.redhat.com/rhel7/pod-infrastructure
yum install *rhsm* -y
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm #直接获取 rpm文件
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem #运行脚本,这两个命令会生成/etc/rhsm/ca/redhat-uep.pem文件.
创建4个yaml文件
#postgres-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:latest
env:
- name: POSTGRES_USER
value: "user"
- name: POSTGRES_PASSWORD
value: "password"
- name: POSTGRES_DB
value: "db"
ports:
- containerPort: 5432
volumeMounts:
- name: postgres-pv
mountPath: /root/k8s/pgsql/data
volumes:
- name: postgres-pv
persistentVolumeClaim:
claimName: postgres-pvc
#postgres-services.yaml
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
type: NodePort
ports:
- protocol: TCP
port: 5432
targetPort: 5432
nodePort: 30001
selector:
app: postgres
#postgres-pv.yaml
kind: PersistentVolume
apiVersion: v1
metadata:
name: postgres-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
hostPath:
path: "/root/k8s/pgsql/data"
#postgres-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeName: postgres-pv
kubectl apply -f .
访问数据库
docker ps
docker exec -it 1e6b2dfbe081 psql -U user -W db