单机部署k8s配置https:(一)安装k8s、使用yaml部署postgresSql并访问

174 阅读2分钟

实例配置

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 .

image.png

访问数据库

docker ps
docker exec -it 1e6b2dfbe081 psql -U user -W db

image.png