1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Agent-based Installerを利用したOpenShift構築(Proxy編)

Posted at

はじめに

こちらの記事で紹介したエージェントベースのインストール方式ではOCPの各ノードが直接インターネットにアクセスできる構成でした。
本記事では各ノードがProxyを経由してインターネットにアクセスできる構成で検証を行った結果を紹介します。

初めに結論ですが、インストールの流れは同じでinstall-config.yamlファイルにProxyの設定を追記する点が異なります。

検証環境

先の記事と同じくIBM CloudのVPCベアメタルサーバーサービスを利用しています。
構成の違いは、ESXi上にプライベートネットワークを構成する形になるため、DNS、DHCPの各機能をProxyの機能を持つBastionサーバー上に構成してる点となります。

構成図-Proxy構成.drawio.png

構築検証

事前準備

ESXi上にVMを作成し、VMのNICのMACアドレスを記録します。このMACアドレスをBastionサーバー上のDNS、DHCP(dnsmasq)に登録し、IPを予約します。

/etc/dnsmasq.conf(デフォルト設定に下記部分を追記)
port=53
domain-needed
bogus-priv
resolv-file=/etc/resolv.dnsmasq
no-poll
address=/apps.ocptest.com/192.168.1.10
no-dhcp-interface=ens192
expand-hosts
domain=ocptest.com
dhcp-range=192.168.1.11,192.168.1.20,255.255.255.0,12h
dhcp-host=00:0c:29:7c:4b:32,m1,192.168.1.11
dhcp-host=00:0c:29:83:40:80,m2,192.168.1.12
dhcp-host=00:0c:29:de:07:63,m3,192.168.1.13
dhcp-host=00:0c:29:33:02:aa,w1,192.168.1.14
dhcp-host=00:0c:29:40:05:dd,w2,192.168.1.15
dhcp-host=00:0c:29:c1:f5:03,w3,192.168.1.16
dhcp-option=option:dns-server,192.168.1.10
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
log-dhcp
log-facility=/var/log/dnsmasq.log

またhostsファイルは以下のように設定します。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#for OCP4
192.168.1.20 api
192.168.1.20 api-int
192.168.1.20 api.pxocpcluster.ocptest.com
192.168.1.20 api-int.pxocpcluster.ocptest.com

192.168.1.10 proxy2 proxy2.ocptest.com
192.168.1.11 m1 m1.ocptest.com
192.168.1.12 m2 m2.ocptest.com
192.168.1.13 m3 m3.ocptest.com
192.168.1.14 w1 w1.ocptest.com
192.168.1.15 w2 w2.ocptest.com
192.168.1.16 w3 w3.ocptest.com

192.168.1.21 oauth-openshift.apps.pxocpcluster.ocptest.com
192.168.1.21 console-openshift-console.apps.pxocpcluster.ocptest.com

構成ファイル準備

次にインストール用の構成ファイルです。

まずはinstall-config.yamlファイルです。こちらは先の記事とはProxy設定が入っている点が異なります。IP・ホスト名は変えてあります。

install-config.yaml
apiVersion: v1
baseDomain: ocptest.com
proxy:
  httpProxy: http://192.168.1.10:8080
  httpsProxy: http://192.168.1.10:8080
  noProxy: .ocptest.com,192.168.1.0/24,10.240.1.0/24
compute:
- architecture: amd64
  hyperthreading: Enabled
  name: worker
  replicas: 3
controlPlane:
  architecture: amd64
  hyperthreading: Enabled
  name: master
  replicas: 3
metadata:
  name: pxocpcluster
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 192.168.1.0/24
  networkType: OVNKubernetes
  serviceNetwork:
  - 172.30.0.0/16
platform:
  baremetal:
    apiVIPs:
    - 192.168.1.20
    ingressVIPs:
    - 192.168.1.21
pullSecret: '{"auths":{"cloud.openshift.com":{"auth":xxxxx}}}'
sshKey: 'ssh-ed25519 AAAAxxxxx user01@proxy.ocptest.com'

続いてagent-config.yamlファイルです。こちらは先の記事とIP・ホスト名以外は同じです。

agent-config.yaml
apiVersion: v1alpha1
kind: AgentConfig
metadata:
  name: pxocpcluster
rendezvousIP: 192.168.1.11
hosts:
  - hostname: m1.ocptest.com
    role: master
    interfaces:
      - name: ens192
        macAddress: 00:0c:29:7c:4b:32
    rootDeviceHints:
      deviceName: /dev/sda
    networkConfig:
      interfaces:
        - name: ens192
          type: ethernet
          state: up
          mac-address: 00:0c:29:7c:4b:32
          ipv4:
            enabled: true
            address:
              - ip: 192.168.1.11
                prefix-length: 24
            dhcp: false
      dns-resolver:
        config:
          server:
            - 192.168.1.10
      routes:
        config:
          - destination: 0.0.0.0/0
            next-hop-address: 192.168.1.10
            next-hop-interface: ens192
            table-id: 254
  - hostname: m2.ocptest.com
    role: master
    interfaces:
      - name: ens192
        macAddress: 00:0c:29:83:40:80
    rootDeviceHints:
      deviceName: /dev/sda
    networkConfig:
      interfaces:
        - name: ens192
          type: ethernet
          state: up
          mac-address: 00:0c:29:83:40:80
          ipv4:
            enabled: true
            address:
              - ip: 192.168.1.12
                prefix-length: 24
            dhcp: false
      dns-resolver:
        config:
          server:
            - 192.168.1.10
      routes:
        config:
          - destination: 0.0.0.0/0
            next-hop-address: 192.168.1.10
            next-hop-interface: ens192
            table-id: 254
  - hostname: m3.ocptest.com
    role: master
    interfaces:
      - name: ens192
        macAddress: 00:0c:29:de:07:63
    rootDeviceHints:
      deviceName: /dev/sda
    networkConfig:
      interfaces:
        - name: ens192
          type: ethernet
          state: up
          mac-address: 00:0c:29:de:07:63
          ipv4:
            enabled: true
            address:
              - ip: 192.168.1.13
                prefix-length: 24
            dhcp: false
      dns-resolver:
        config:
          server:
            - 192.168.1.10
      routes:
        config:
          - destination: 0.0.0.0/0
            next-hop-address: 192.168.1.10
            next-hop-interface: ens192
            table-id: 254
  - hostname: w1.ocptest.com
    role: worker
    interfaces:
      - name: ens192
        macAddress: 00:0c:29:33:02:aa
    rootDeviceHints:
      deviceName: /dev/sda
    networkConfig:
      interfaces:
        - name: ens192
          type: ethernet
          state: up
          mac-address: 00:0c:29:33:02:aa
          ipv4:
            enabled: true
            address:
              - ip: 192.168.1.14
                prefix-length: 24
            dhcp: false
      dns-resolver:
        config:
          server:
            - 192.168.1.10
      routes:
        config:
          - destination: 0.0.0.0/0
            next-hop-address: 192.168.1.10
            next-hop-interface: ens192
            table-id: 254
  - hostname: w2.ocptest.com
    role: worker
    interfaces:
      - name: ens192
        macAddress: 00:0c:29:40:05:dd
    rootDeviceHints:
      deviceName: /dev/sda
    networkConfig:
      interfaces:
        - name: ens192
          type: ethernet
          state: up
          mac-address: 00:0c:29:40:05:dd
          ipv4:
            enabled: true
            address:
              - ip: 192.168.1.15
                prefix-length: 24
            dhcp: false
      dns-resolver:
        config:
          server:
            - 192.168.1.10
      routes:
        config:
          - destination: 0.0.0.0/0
            next-hop-address: 192.168.1.10
            next-hop-interface: ens192
            table-id: 254
  - hostname: w3.ocptest.com
    role: worker
    interfaces:
      - name: ens192
        macAddress: 00:0c:29:c1:f5:03
    rootDeviceHints:
      deviceName: /dev/sda
    networkConfig:
      interfaces:
        - name: ens192
          type: ethernet
          state: up
          mac-address: 00:0c:29:c1:f5:03
          ipv4:
            enabled: true
            address:
              - ip: 192.168.1.16
                prefix-length: 24
            dhcp: false
      dns-resolver:
        config:
          server:
            - 192.168.1.10
      routes:
        config:
          - destination: 0.0.0.0/0
            next-hop-address: 192.168.1.10
            next-hop-interface: ens192
            table-id: 254

導入

導入方法も同じなので、元記事を参照ください。

インストール完了をCLIで確認

参考のため、Proxy設定情報だけ記載します。

$ oc get proxy cluster -o yaml
apiVersion: config.openshift.io/v1
kind: Proxy
metadata:
  creationTimestamp: "2023-09-15T03:30:13Z"
  generation: 1
  name: cluster
  resourceVersion: "549"
  uid: 9f51417b-d83e-45ee-b94c-44c56b8fe059
spec:
  httpProxy: http://192.168.1.10:8080
  httpsProxy: http://192.168.1.10:8080
  noProxy: .ocptest.com,192.168.1.0/24,10.240.1.0/24,.pxocpcluster.ocptest.com,10.128.0.0/14,172.30.0.0/16,192.168.1.0/24
  trustedCA:
    name: ""
status:
  httpProxy: http://192.168.1.10:8080
  httpsProxy: http://192.168.1.10:8080
  noProxy: .cluster.local,.ocptest.com,.pxocpcluster.ocptest.com,.svc,10.128.0.0/14,10.240.1.0/24,127.0.0.1,172.30.0.0/16,192.168.1.0/24,api-int.pxocpcluster.ocptest.com,localhost

まとめ

エージェントベース方式におけるProxy構成でのインストールも簡単に実施することができました。
次は、インターネット非接続環境版も余裕があれば検証してみたい。

参考

インストール時のクラスター全体のプロキシーの設定

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?