OpenShift的安装和使用


OpenShift为您提供了一个自助服务平台,可以根据需要创建,修改和部署容器化的应用程序。

OpenShift的安装和使用


1. 项目特点介绍

这里使用的是 OpenShift4 最新版

OpenShift的安装和使用

红帽 OpenShift 是一个企业就绪型 Kubernetes 容器平台,可以实现全堆栈自动化运营,以管理混合云和多云部署。红帽 OpenShift 已进行过优化,可以提高开发人员的生产力并推动创新。

  • 运营可扩展的容器*
    • 红帽 OpenShift 包含企业级 Linux 操作系统、容器运行时,以及各种网络、监控、注册表、身份验证和授权解决方案。实现生命周期管理自动化,以提高安全性、获取量身定制的运营解决方案、简化集群的运营管理并实现应用可移植性。
  • 企业级 Kubernetes
    • 可供选择的 Kubernetes 解决方案多种多样。红帽 OpenShift 通过聚焦安全,备受支持的 Kubernetes 平台在业界保持领先 — 还包含了红帽企业 Linux 基础。我们还可以为需要支持的客户提供专家培训和咨询服务。
  • 按需使用的应用堆栈
    • 使用您喜欢的语言和工具来开发应用,并通过容器镜像来进行部署。只需单击一下,即可使用预先创建的快速启用应用模板来构建应用语言、框架和数据库。
  • 编码和推送
    • 部署就像单击按钮或输入 git 推送命令一样简单。这缓解或解决了很多与构建和部署容器化应用相关的系统管理难题。
  • 简化交付
    • 借助红帽 OpenShift,您可以实现开发人员工作流程标准化、支持多个环境、实现持续集成和自动化发布管理。

2. 使用 CentOS 安装

使用 CentOS7 最新的版本进行安装

OpenShift的安装和使用

  • [1] 配置要求
# 建议配置要求
8 vCPUs
32 GB RAM
50 GB free disc space
CentOS7 OS
  • [2] 安装 Docker 工具
# Update CentOS 7 system
sudo yum -y update

# Install and Configure Docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y  docker-ce docker-ce-cli containerd.io

# 将当前用户加到docker组里面
sudo usermod -aG docker $USER
newgrp docker

# 创建配置文件
sudo mkdir /etc/docker /etc/containers

# 编辑配置文件
sudo tee /etc/containers/registries.conf<<EOF
[registries.insecure]
registries = ['172.30.0.0/16']
EOF

# 编辑配置文件
sudo tee /etc/docker/daemon.json<<EOF
{
   "insecure-registries": [
     "172.30.0.0/16"
   ]
}
EOF

# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

# 设置IP路由转发
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
  • [3] 配置防火墙
# Configure Firewalld.
DOCKER_BRIDGE=`docker network inspect -f "{{range .IPAM.Config }}{{ .Subnet }}{{end}}" bridge`
sudo firewall-cmd --permanent --new-zone dockerc
sudo firewall-cmd --permanent --zone dockerc --add-source $DOCKER_BRIDGE
sudo firewall-cmd --permanent --zone dockerc --add-port={80,443,8443}/tcp
sudo firewall-cmd --permanent --zone dockerc --add-port={53,8053}/udp
sudo firewall-cmd --reload
  • [4] 安装 OC 工具
# Download the Linux oc binary
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
tar xvf openshift-origin-client-tools*.tar.gz
cd openshift-origin-client*/
sudo mv  oc kubectl  /usr/local/bin/

# 验证
oc version
  • [5] 部署 openshift 集群
# Start OpenShift Origin (OKD) Local Cluster
# Start OKD Cluster listening on the local interface – 127.0.0.1:8443
# Start a web console listening on all interfaces at /console (127.0.0.1:8443).
# Launch Kubernetes system components.
# Provisions registry, router, initial templates, and a default project.
# The OpenShift cluster will run as an all-in-one container on a Docker host.
oc cluster up
oc cluster up --skip-registry-check=true
# 查看状态
oc cluster status

# 登录
oc login -u system:admin
# 常用操作
oc status
oc cluster down
oc cluster up

# 常用操作
oc get svc
oc get nodes
oc describe node <node>
oc new-project test-project
oc new-app deployment-example
oc expose service/deployment-example
  • [6] 登录和使用

访问如下地址 https://<IP|Hostname>:8443/console 可以跳转到对应登录页面。如果没有设置 HOST 的话,则使用 https://127.0.0.1:8443/ 地址。

Username: developer
Password: developer

OpenShift的安装和使用

OpenShift的安装和使用


3. 使用 Ubuntu 安装

使用 Ubuntu19.04 最新的版本进行安装

OpenShift的安装和使用

  • [1] 安装 docker 工具
# Import Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# add Docker APT repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# install Docker CE
sudo apt update && sudo apt -y install docker-ce

# Add your User account to docker group
sudo usermod -aG docker $USER
  • [2] 下载 OpenShift 工具
# Download
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz

# Uncompress downloaded file
tar xvf openshift-origin-client-tools*.tar.gz
cd openshift-origin-client*/
sudo mv  oc kubectl  /usr/local/bin/

# Verify installation of OpenShift client utility
oc version

# Allow use of Insecure Docker registry
cat << EOF | sudo tee /etc/docker/daemon.json
 {
     "insecure-registries" : [ "172.30.0.0/16" ]
 }
EOF

# Restart Docker service after adding the file
sudo systemctl restart docker
  • [3] 启动集群服务
# 直接启动
oc cluster up

# 自定义配置
# oc cluster up --public-hostname=192.168.10.10
oc cluster up --routing-suffix=<ServerPublicIP>.xip.io \
    --public-hostname=<ServerPulicDNSName>

# 登录
oc login -u system:admin
  • [4] 启动 Pod 问题处理
# 部署之后启动Pod时,如果遇到权限问题
# 这是因为OpenShift默认不允许Root用户来启动程序
# 可以使用如下命令,对创建的project赋权
oc adm policy add-scc-to-user anyuid -z <project_name> -n rook
oc adm policy add-scc-to-user anyuid -z <project_name> -n rook-system

4. 功能项目展示

收费版本的 OpenShift 就是强哈 👍

  • OKD

OpenShift的安装和使用

  • OpenShift

OpenShift的安装和使用


5. 常见问题处理

遇到问题,记得及时记录哈

  • [1] 创建 Pod 提示没有目前权限
# 提示信息
mkdir: cannot create directory ‘/data/docs’: Permission denied

# 处理方式
# 需要切换到管理员用户才能够授权
oc login -u system:admin
oc adm policy add-scc-to-user anyuid -z default -n <namespace>
  • [2] 系统磁盘资源不足导致服务无法启动
# 提示信息
使用oc命令启动OKD服务,但是一直提示各种报错。从网上搜索解决方法,但是没有能够解决该问题。

# 处理方式
后来才发现,是在启动的时候,会判断磁盘的百分比空间(百分比,好坑呀)。
因为系统的磁盘高于了90%,导致无法启动,但是提示的报错信息并不是说空间不足。
使用K8S的时候,同样也会有这问题,如果都没资源pod会被驱逐。

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录